我怎样才能找出/测试最快的速度

时间:2011-04-08 08:52:23

标签: javascript

我如何测试什么是最快的?

我想测试两个函数中哪一个最快:

function foo ( selector ) {

    var $selector = $(selector);

}

function foo ( selector ) {

    var $selector;

    if ( selector instanceof jQuery ) {
         $selector = selector;
    } else if ( selector ) {
         $selector = $(selector);
    }
}

使用以下测试:

foo( "div#primary" );
foo( $("div#primary") );

解决方案可能是:

  • 询问什么是最快的。
  • 查找jQuery源代码。
  • 但是...

...作为一个假设性问题,如何在JavaScript中运行测试以查看是否存在速度差异?

4 个答案:

答案 0 :(得分:3)

最简单的分析方法是记录函数之前的时间并记录之后,从后者中减去前者。重复这几次,你会有一个粗略的想法。但是有一些干扰因素,如当前的CPU使用率,可能会影响结果。浏览器的控制台可能会对您有所帮助:

console.time("test");

// ... js code here ...

console.timeEnd("test");
//-> "test: 25ms" 

您也可以使用浏览器的开发者工具进行配置。

另一个选择是让http://jsperf.com为您进行分析。 jsPerf重复运行您的代码,并在您的测试用例之间进行了很好的比较。它还记录每个浏览器的结果(基于用户代理字符串),因此您可以快速比较不同浏览器中的代码。

答案 1 :(得分:1)

抱歉,我使用谷歌这样做:http://remysharp.com/2007/04/20/performance-profiling-javascript/
或者在IE9,F12中使用Profiler。我认为这也是萤火虫和铬。

答案 2 :(得分:1)

尝试jsperf - > jsperf.com

答案 3 :(得分:0)

除非你做了这么多次,否则无所谓。

所以,请选择最容易阅读的内容(即#1)