Eine objektive Möglichkeit, die Speichergeschwindigkeit verschiedener Vererbungsmuster in JavaScript zu vergleichen.

8

Ich sehe oft Argumente zwischen Klassik (gefälscht über eine Bibliothek), Pseudoklassische und Prototypische Vererbung "Effizienz". Ich habe jedoch nie irgendwelche Daten gesehen, die diese Art von Dingen unterstützen. Ganz zu schweigen von "Effizienz" erscheint ein mehrdeutiges Wort, wenn es um einen Kodierungsstil geht, und nicht um einen Algorithmus.

Ich möchte einige Tests durchführen, um einige dieser Muster und Bibliotheken zu "benchmarken". Dies scheint sich deutlich von den meisten Algorithmen oder Anzeige-Benchmarks zu unterscheiden, die ich in der Vergangenheit gesehen habe. Was meinst du, sind die wichtigen Dinge, die getestet werden müssen, und was sind die besten Möglichkeiten, um diese Zahlen zuverlässig zu bekommen?

Was ich gerade denke:

  • Geschwindigkeit der Instanziierung (Zeit die Schaffung von ein paar tausend Objekten Verwenden jedes Musters w / identisch Funktionalität)
  • Speicherverbrauch (Der einzige Weg, wie ich denken kann, ist meine Erinnerung in der Aufgabenmanager ... gibt es ein besseres Weg)
  • Geschwindigkeit des Zugriffs auf interne Eigenschaften und Methoden (Iteration Timing wieder)
  • Geschwindigkeit der Kopien (Iterationstiming)
  • Codezeilen (Peer bewertete Best Practices anhand von Beispielen mit einem zählen)

Irgendwelche Trugschlüsse, Ergänzungen oder Einwände? Hat jemand diese Daten woanders gesehen?

Danke!

    
Alex Sexton 17.02.2010, 20:28
quelle

4 Antworten

2

Es gibt einige Tests und Zahlen, die von diesem Blogpost verlinkt sind.

Lesen Sie auch diesen Artikel von John Resig über die Genauigkeit der JavaScript-Zeit und wie Es beeinflusst Leistungsbenchmarks. Wenn Sie JSLitmus nicht als Residuum empfohlen verwenden, stellen Sie sicher, dass Sie weiterhin adaptive Testzyklen verwenden.

Obwohl ich zu 100% mit dem Kommentar von darelf übereinstimme, dass Sie mehrere Browser testen sollten, können Sie Details zur Speicher- und CPU-Nutzung in Chrome durch Drücken von Umschalt + Esc abrufen.

    
Annie 25.02.2010, 17:40
quelle
1

Das klingt offensichtlich: Sie müssen bedenken, dass jeder Browser andere Ergebnisse liefert. Es sollte Teil jeder Matrix sein, die Sie in Ihren Tests erstellen. Viel Glück.

    
darelf 17.02.2010 20:34
quelle
1

Ich habe es nicht selbst benutzt, aber JSLitmus sieht nach dem richtigen Werkzeug für den Job aus. Hier ist ein Benchmark verschiedener Vererbungsmethoden mit JSLitmus.

Wenn Sie nach Codezeilen suchen und die Größe für Ihre Benchmark wirklich wichtig ist (und die Größe der Javascript-Dateien zählt), sollten Sie auch die Größe der verkleinerten JavaScript-Dateien testen, indem Sie YUI Copressor .

Für die Speicherbenutzungsbenchmarks habe ich keine andere Idee, als auf Task-Manager oder Top in Linux-Systemen oder dem Äquivalent in Mac OS X zu schauen (und Sie sollten diese auch testen).

Abgesehen davon: Viel Glück und bitte geben Sie die Informationen frei, die Sie durch Ihre Benchmarks erhalten haben. Und vergessen Sie nicht, die Testmethoden für die Reproduktion der Werte einzuschließen, damit andere interessierte Programmierer Ihre Ergebnisse überprüfen können.

    
Residuum 22.02.2010 17:54
quelle
1

Nicht sicher, ob dies hilft oder nicht, aber überprüfen dyna trace macht einen netten Job um Zahlen zu geben.

    
Anil Namde 25.02.2010 16:52
quelle