call, send, eval性能比较

call, send, eval性能比较



[Copy to clipboard] [ - ]
eval动态执行代码性能不是问题,有问题的是程序员
引用:
eval是估算执行的意思,在编写脚本的时候,有时预先不知道要执行什么语句或预料不到所有的可能,只有当参数或某些代码从其他地方传递过来时,才知道要该完成什么任务,这时eval便有了作用。因为eval是用解释器解释执行的,因此很多种脚本语言都有eval功能。

eval("puts 123456")      >>123456

eval的执行效率和普通代码的效率差距相当大,不过这也是相对的,对于已经执行过的代码解释器会有记录而不会重新解释。例如下面的三段代码的执行效率就大不一样。

下面的代码执行时间是“0.578s”,对于一个百万次循环赋值来说,这个时间可以接受。

[Copy to clipboard] [ - ]
因此,只要我们知道eval的机制,我们就可以放心的使用它.性能不是问题(在性能没有成为问题之前,性能就不是问题)

[ 本帖最后由 haoqi 于 2007-7-13 11:52 编辑 ]
的确如haoqi所言,

[Copy to clipboard] [ - ]
的确如haoqi所言,试了一下,

[Copy to clipboard] [ - ]