在javascript中执行指令的成本是否有任何一般性?

时间:2008-10-21 17:20:36

标签: javascript performance

我想知道,如果在执行给定指令与另一个指令相关的成本方面存在任何普遍性(在那里的所有javascript引擎中)。

例如,eval()比调用已经声明的函数慢。

我想得到一张包含多个指令/函数调用的表格,绝对成本,可能是每个引擎的成本。

这样的文件是否存在?

1 个答案:

答案 0 :(得分:2)

这里有一个页面(由我们的一位杰出主持人提供,不少)通过浏览器和一般教学课程进行细分:

http://www.codinghorror.com/blog/archives/001023.html

上面的页面链接到更详细的细分:

http://www.codinghorror.com/blog/files/sunspider-09-benchmark-results.txt

这些页面都没有将性能分解为单个函数调用或算术运算的级别或者你有什么。不过,还有很多可能有用的信息。

还有一个指向基准的链接:

http://www2.webkit.org/perf/sunspider-0.9/sunspider.html

通过查看基准测试源,您可以更好地了解正在测试的特定函数调用。

创建自己的基准测试版本似乎也很简单,它可以收集您感兴趣的更具体的数据。然后您可以在各种浏览器上运行修改后的基准测试,甚至可能利用它们诸如browsershots.org之类的服务来测试各种浏览器。不确定它会有多好用,但试试它可能会很有趣......

当然,在同一浏览器中执行的相同操作可能会花费不同的时间量,具体取决于使用它的上下文,其方式可能不会立即显而易见。例如,我可以想象一个Javascript引擎花费更多时间来优化频繁执行的代码,结果是在紧密循环中执行的代码可能比不经常执行的相同代码运行得更快。当然,这在实践中可能并不重要。尽管如此,我认为如果它们变得很重要,那么你正在寻找的那种好的表格也可以总结出任何这样的效果。