2009-08-09 10 views
3

Das ist ziemlich interessant, diese Seite führt einen Geschwindigkeitstest durch und vergleicht alle diese;Speed ​​Test zwischen Javascript Frameworks zuverlässig?

  • 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

Bases auf das es wie die neueste jQuery-Version erscheint, ist fast 2x schneller als die ältere Version, aber auch die neueste jquery ausführen nicht, dass gut IMO

Fragestunde:
1. Also meine Frage, ich bin neu zu Javascript, denken Sie, dass dieser Test ziemlich genau ist?
2. Wenn es ist, bedeutet dies sogar alles in Bezug auf die Leistung oder ist es nicht einmal bemerkbar?

Antwort

2

Die Tatsache, dass die PureDom-Tests manchmal als langsamer aufgeführt werden, da einige der Frameworks mich an die Genauigkeit der Messungen etwas zweifeln lassen. Oder die Programmierbarkeit der Website-Hersteller Ich schätze: P

Insbesondere nach dem Anzeigen dieser Zahlen, würde ich sagen, Funktionalität, Benutzerfreundlichkeit und Community-Support sind wichtiger als die Unterschiede in der Leistung. Verwenden Sie, was Sie mögen, und wenn Sie zufällig etwas sehr leistungsabhängig tun müssen, Do-it-yourself ™.

+1

Es gibt nie einen einzigen Test, bei dem PureDom auf meiner Maschine langsamer ist – toto

1

Leistung der populären JavaScript-Bibliotheken ist mehr als ausreichend. Es hängt auch sehr davon ab, was Sie mit ihnen machen: Obwohl jQuery schnell "auf dem Papier" sein kann, ist es eine Bibliothek, mit der Sie unbeabsichtigt sehr langsamen Code erstellen können. So können Sie zum Beispiel viele ineffiziente DOM-Modifikationen durchführen.

Da die Bibliotheken alle schnell sind, ist für mich persönlich die Entwicklungsgeschwindigkeit und die Eignung der Bibliothek von Bedeutung. Manche sind für bestimmte Dinge besser geeignet als andere.

1

Ich würde nicht sehr auf sie achten. Sie folgen nicht den Best Practices und sind überhaupt nicht optimiert.

Nehmen Sie zum Beispiel die „make“ jquery 1.3.2 Test (Code unten)

Wenn Sie here und offene Firebug gehen können Sie sehen, ich habe verglichen ihre Verfahren gegen die beste Art und Weise, es zu tun. Der Unterschied ist erstaunlich.

Aus Gründen der Klarheit nannte ich sie makeBad und makeGood. Hier sind die Ergebnisse:

alt text http://gyazo.com/6e96f17c1c04aa34f0fe73e7068b6597.png

Fazit: Nehmen Sie die Ergebnisse mit einer Prise Salz. Sie sind nicht die reale Welt Beispiele

"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; 
    }, 

Es ist nicht optimiert. Sie sollten nicht an das Dom innerhalb der Schleife anhängen. Besser, zu einem Array zu schieben und dann einmal an das Dom anzuhängen. Es ist viel besser wie folgt geschrieben.

"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; 
    }, 
+1

Dann testen Sie nur 1 (* one *) append(), nicht 250. Das ist nicht der gleiche Test überhaupt. Sicher, es ist schneller, aber das ist nicht der Punkt, da Ihre Optimierung nicht rahmenspezifisch ist. – Thorarin

+0

Aber der Grund ist immer noch wahr, die Ergebnisse zu ignorieren, da sie für nichts zählen. – redsquare

+0

Es ist der Punkt. Die Frage ist, ob er auf die Ergebnisse achten sollte. Die Antwort ist nein und darüber ist warum! – redsquare

0

vor allem ist dieser Test eine rein theoretische Prüfung, nur Geschwindigkeit und sonst nichts (ohne Speichernutzung berechnet, keine reale Welt Nutzung etc.) und zusätzlich zu, dass das wichtigste eines libary ist nicht theoretische Geschwindigkeit, es Funktionalität und Unterstützung.

Zweitens sind alle Libraries im Leistungsmaßstab schnell genug, um alles zu tun, was Sie brauchen, es ist der Programmierer, der es langsam macht.

schließlich, meine persönliche Meinung ist, dass Sie nur mit der neuesten Version von jQuery gehen sollten, für seine Benutzerfreundlichkeit (CSS3-Selektoren) und einfache AJAX-Implementierung.

1

Sie möchten eine Bibliothek wählen, die Ihren Bedürfnissen entspricht.

  • Ist es Knoten (set) Auswahl leicht
  • Ist es DOM-Manipulation leicht
  • Ist es Ereignisbindung leicht
  • Gibt es grundlegende Animation leicht
  • Macht es einfach machen AJAX machen machen machen machen
  • Behebt es IE Bugs auf dem Weg während der oben genannten?
  • Skaliert es? Gibt es Plugins?
  • Gibt es Dokumentation, Unterstützung, eine Gemeinschaft von Entwicklern gibt

die Bibliothek suchen, die für Sie arbeitet und gehen für sie. Im Laufe der Zeit finden sowohl Sie als auch der Bibliotheksverlag die besten Möglichkeiten, um die Leistung für Ihren Code zu maximieren.