404 Stimmen

Wie testet man die Leistung von JavaScript-Code?

CPU-Zyklen, Speichernutzung, Ausführungszeit, usw.?

Hinzugefügt: Gibt es eine quantitative Methode zum Testen der Leistung in JavaScript neben der Wahrnehmung, wie schnell der Code läuft?

7voto

John Boker Punkte 80493

Sie könnten dies verwenden: http://getfirebug.com/js.html . Es hat einen Profiler für JavaScript.

6voto

Ste Punkte 1213

Ich habe etwas Ähnliches gesucht, aber das hier gefunden.

https://jsbench.me/

Es ermöglicht einen direkten Vergleich, und Sie können die Ergebnisse dann auch weitergeben.

5voto

performance.mark (Chrome 87 ^)

performance.mark('initSelect - start');
initSelect();
performance.mark('initSelect - end');

enter image description here

4voto

Rafael Xavier Punkte 2740

Schnelle Antwort

Bei jQuery (genauer gesagt bei Sizzle) verwenden wir este (checken Sie den Master und öffnen Sie speed/index.html in Ihrem Browser), der wiederum die benchmark.js . Dies dient dem Leistungstest der Bibliothek.

Lange Antwort

Wenn der Leser den Unterschied zwischen Benchmark, Workload und Profiler nicht kennt, sollte er zunächst einige Grundlagen zu Leistungstests auf der Abschnitt "readme 1st" von spec.org . Dies ist für Systemtests, aber das Verständnis dieser Grundlagen wird auch für JS-Perf-Tests hilfreich sein. Einige Highlights:

Was ist ein Benchmark?

Ein Benchmark ist "ein Mess- oder Bewertungsmaßstab" (Webster's II Dictionary). Bei einem Computer-Benchmark handelt es sich in der Regel um ein Computerprogramm, das eine genau definierte Reihe von Operationen - eine Arbeitslast - ausführt und eine Art Ergebnis - eine Metrik - liefert, das die Leistung des getesteten Computers beschreibt. Computer-Benchmark-Kennzahlen messen in der Regel die Geschwindigkeit: wie schnell wurde die Arbeitslast erledigt; oder den Durchsatz: wie viele Arbeitslasteinheiten pro Zeiteinheit wurden erledigt. Wird derselbe Computer-Benchmark auf mehreren Computern durchgeführt, kann ein Vergleich angestellt werden.

Sollte ich meine eigene Bewerbung einem Benchmarking unterziehen?

Idealerweise wäre der beste Vergleichstest für Systeme Ihre eigene Anwendung mit Ihrer eigenen Arbeitslast. Leider ist es oft nicht praktikabel, eine breite Basis zuverlässiger, wiederholbarer und vergleichbarer Messungen für verschiedene Systeme unter Verwendung der eigenen Anwendung und des eigenen Arbeitsaufkommens zu erhalten. Zu den Problemen gehören u. a. die Generierung eines guten Testfalls, Vertraulichkeitsbedenken, Schwierigkeiten bei der Gewährleistung vergleichbarer Bedingungen, Zeit- und Geldmangel oder andere Beschränkungen.

Wenn nicht meine eigene Bewerbung, was dann?

Vielleicht möchten Sie standardisierte Benchmarks als Referenzpunkt verwenden. Im Idealfall ist ein standardisierter Benchmark übertragbar und wurde möglicherweise bereits auf den Plattformen ausgeführt, an denen Sie interessiert sind. Bevor Sie die Ergebnisse in Betracht ziehen, müssen Sie jedoch sicher sein, dass Sie die Korrelation zwischen Ihren Anwendungs- bzw. Rechenanforderungen und den Messwerten des Benchmarks verstehen. Entsprechen die Benchmarks den Arten von Anwendungen, die Sie betreiben? Weisen die Arbeitslasten ähnliche Merkmale auf? Anhand der Antworten auf diese Fragen können Sie erkennen, inwieweit der Benchmark Ihrer Realität nahe kommt.

Hinweis: Ein standardisierter Benchmark kann als Referenzpunkt dienen. Dennoch erhebt SPEC bei der Auswahl von Anbietern oder Produkten nicht den Anspruch, dass ein standardisierter Benchmark das Benchmarking Ihrer eigenen tatsächlichen Anwendung ersetzen kann.

Leistungsprüfung JS

Im Idealfall wäre der beste Perf-Test, wenn Sie Ihre eigene Anwendung mit Ihrer eigenen Arbeitslast verwenden und dabei die zu testenden Elemente austauschen: verschiedene Bibliotheken, Maschinen usw.

Wenn dies nicht möglich ist (und in der Regel ist es nicht möglich). Der erste wichtige Schritt: Definieren Sie Ihre Arbeitslast. Sie sollte die Arbeitsbelastung Ihrer Anwendung widerspiegeln. Unter dieses Gespräch spricht Vyacheslav Egorov über beschissene Arbeitsbelastungen, die Sie vermeiden sollten.

Dann könnten Sie Tools wie benchmark.js verwenden, um Metriken zu sammeln, normalerweise Geschwindigkeit oder Durchsatz. Bei Sizzle sind wir daran interessiert, zu vergleichen, wie sich Korrekturen oder Änderungen auf die systemische Leistung der Bibliothek auswirken.

Wenn etwas wirklich schlecht läuft, ist der nächste Schritt, nach Engpässen zu suchen.

Wie kann ich Engpässe finden? Profiler

Wie kann man am besten ein Profil für die Ausführung von Javascript erstellen?

3voto

Willem de Wit Punkte 8376

Sie könnten verwenden Konsole.Profil in Firebug

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X