Javascript框架之间的速度测试可靠吗?

时间:2009-08-09 11:47:36

标签: javascript jquery frameworks performance

这非常有趣,这个网站运行速度测试并比较所有这些;

  • PureDom
  • jQuery 1.2.6
  • jQuery 1.3.2
  • Prototype 1.6.0.3
  • MooTools 1.2.2
  • qooxdoo 0.8.2
  • Dojo 1.2.3
  • Dojo 1.3.1
  • YUI 2.7.0

Javascript frameworks Speed Comparison

基于此,似乎最新的jquery版本几乎比旧版本快2倍,但即使是最新的jquery也没有表现得那么好IMO

提问时间:
 所以我的问题,我是新手     javascript,你认为这个测试     是非常准确的?
 如果确实如此,这甚至意味着     任何性能方面或     是不是很明显?

5 个答案:

答案 0 :(得分:2)

PureDom测试有时被列为较慢的事实,因为一些框架让我怀疑测量的准确性。或者我猜测网站制作者的编程能力:P

特别是在看到这些数字之后,我会说功能,易用性和社区支持比性能差异更重要。使用你喜欢的东西,如果你偶然必须做一些非常依赖性能的东西,那就自己动手吧。

答案 1 :(得分:1)

流行的JavaScript库的性能绰绰有余。这很大程度上取决于你对它们的处理方式:尽管jQuery可能很快“在纸上”,但它是一个可以轻松用来无意中创建非常慢的代码的库。例如,很容易用它做很多低效的DOM修改。

由于图书馆都很快,对我个人而言,重要的是图书馆本身的发展速度和适用性。有些东西比其他东西更适合某些东西。

答案 2 :(得分:1)

我不会太注意他们。他们没有遵循最佳实践,根本没有优化。

以“make”jquery 1.3.2测试(下面的代码)为例

如果你去here并打开fireBug,你可以看到我已经将他们的方法与最佳方法进行了比较。差异是惊人的。

为了清楚起见,我称他们为makeBad和makeGood。结果如下:

alt text
(来源:gyazo.com

结论:用一小撮盐取结果。它们不是现实世界的例子

"makeBad": function(){
        for(var i = 0; i<250; i++){
            $("<ul id='setid" + i + "' class='fromcode'></ul>")
                .append("<li>one</li><li>two</li><li>three</li>")
                .appendTo("body");
        }
        return $("ul.fromcode").length;
    },

根本没有优化。你不应该在循环内附加到dom。最好推送到阵列,然后一次附加到dom。写得好得好如下。

"makeGood": function(){
           var domBuilder = [];

          for(var i = 0; i<250; i++){
             domBuilder.push("<ul id='setid" + i + "' class='fromcode'>")
             domBuilder.push("<li>one</li><li>two</li><li>three</li>")
             domBuilder.push("</ul>")
          }

          $('#body').append( "<div>" + domBuilder.join() + "</div>");
          return $("ul.fromcode").length;
    },

答案 3 :(得分:1)

您需要选择符合您需求的图书馆。

  • 是否使节点(集)选择变得容易
  • 是否使DOM操作变得容易
  • 是否使事件绑定变得容易
  • 是否使基本动画变得容易
  • 是否简化了AJAX
  • 在上述过程中是否修复了IE漏洞?
  • 规模吗?插件有吗?
  • 是否有文档,支持,开发人员社区

找到适合您的库并继续使用。随着时间的推移,您和图书馆出版商都会找到最佳方法来最大限度地提高代码的效果。

答案 4 :(得分:0)

首先,该测试是纯粹的理论测试,只是速度而不是其他任何事情(没有计算内存使用量,没有实际使用情况等),除此之外,最重要的一个库不是理论速度,它的功能和支持。

其次,在性能方面,所有的库都足够快,可以做任何你需要它做的事情,而程序员则会让它变慢。

最后,我的个人意见是你应该使用最新版本的jQuery,因为它的可用性(CSS3选择器)和简单的AJAX实现。