Heim >Web-Frontend >js-Tutorial >Editorial: zu Benchmark oder nicht zu Benchmark?
Möglicherweise haben Sie kürzlich einige Nachrichtenüberschriften über den Plan von Google gesehen, um die Verwendung der Octane JavaScript -Benchmark -Suite nicht mehr zu verwenden. Wenn Sie nichts davon wissen oder den Titel nicht fertiggestellt haben, lassen Sie mich ihn kurz überprüfen. Google startete Octane, um den Branchen-Sunspider-Benchmark zu ersetzen. Sunspider wurde vom Safari -Team von Apple erstellt und ist eines der ersten JavaScript -Benchmarks.
Sunspider hat zwei Probleme. Erstens basiert es auf Mikrobenchmarks (denken Sie an Tausende von Tests, um Neuarrays zu erstellen), was die reale Verwendung nicht sehr genau widerspiegelt. Zweitens nehmen die Rangliste von Sunspider bei den Browserherstellern viel Gewicht zu und führen einige Anbieter dazu, ihre JavaScript -Motoren für bessere Benchmark -Ergebnisse zu optimieren, anstatt die Bedürfnisse der tatsächlichen Programme zu erfüllen. In einigen Fällen führen diese Verbesserungen sogar dazu, dass der Produktionscode langsamer als zuvor läuft!
Octane konzentriert sich darauf, Tests zu erstellen, die die tatsächlichen Workloads genauer simulieren und zum Standard für die Messung der JavaScript -Implementierung werden. Die Browserhersteller haben jedoch wieder eingeholt und wir sehen Optimierungen für Oktanzests. Dies bedeutet nicht, dass das Benchmarking nutzlos ist. Der Wettbewerb zwischen Browsern hat in der Tat zu einer signifikanten Verbesserung der JavaScript -Leistung geführt.
Sie könnten sagen, es ist ein wenig interessant, aber was hat das mit meiner täglichen Arbeit als Entwickler zu tun? Benchmarks werden oft zitiert, wenn Sie versuchen, die Menschen von den Vorteilen von Rahmen Y gegenüber dem Rahmen X zu überzeugen, und einige Menschen nehmen diese Zahlen sehr ernst. Letzte Woche bemerkte ich, dass eine neue UI -Bibliothek namens Moonjs auf einigen Nachrichtenaggregatoren weit verbreitet ist. Moonjs positionierte sich als "minimierte, extrem schnelle" Bibliothek und zitierte einige Benchmark -Daten, um diese Aussage zu unterstützen. Um klar zu sein, ich ziele hier nicht auf Moonjs. Diese Fokussierung auf Geschwindigkeit ist sehr häufig, insbesondere in UI -Bibliotheken (z. B. einen React -Klon ansehen). Wie wir jedoch in den Beispielen von Sunspider und Octane sehen, kann das Benchmarking irreführend sein. Viele moderne JavaScript -Ansichtsbibliotheken und Frameworks verwenden eine Form von virtuellem DOM, um die Ausgabe zu rendern. Bei der Untersuchung verschiedener Implementierungen verbrachte Boris Kaul einige Zeit damit, Methoden zur Messung der virtuellen DOM -Leistung zu untersuchen, und stellte fest, dass die Leistung von VDOM relativ einfach zu stimmen ist, um gute Ergebnisse im Benchmark zu erzielen. Seine Schlussfolgerung lautet: "Wenn Sie einen Framework oder eine Bibliothek auswählen, verwenden Sie die Nummern nicht von Web -Framework -Benchmarks, um Ihre Entscheidung zu treffen."
Beim Vergleich auf der Grundlage der beanspruchten Geschwindigkeit der Bibliothek gibt es andere Gründe, vorsichtig zu sein. Es ist wichtig, sich daran zu erinnern, dass wie Sunspider viele Benchmarks Mikrobenchmarks sind.
Es lohnt sich auch, die Bedeutung der Geschwindigkeit für Ihren spezifischen Anwendungsfall zu berücksichtigen. Es ist unwahrscheinlich, dass eine einfache CRUD -Anwendung jede UI -Bibliothek überwältigt, und die Lernkurve, der verfügbare Talentpool und das Glück der Entwickler sind ebenfalls wichtige Überlegungen. Ich habe in der Vergangenheit eine Menge Diskussion darüber gesehen, ob Ruby zu langsam ist, um Webanwendungen zu erstellen, aber trotz der schnelleren Optionen gibt es immer noch viele Anwendungen in Ruby und werden weiterhin in Ruby geschrieben.
Geschwindigkeitsmetriken können irreführend sein, können jedoch je nach dem Aufbau auch von begrenztem Nutzen sein. Wie bei allen Regeln des Daumens und der guten Praxis ist es besser, anzuhalten und darüber nachzudenken, wie (oder ob) es für Ihre Situation gilt. Ich würde gerne Ihre Erfahrung kennen: Haben Sie Software in der Praxis verwendet, die nicht der Benchmark -Aussage entspricht? Haben Sie Anwendungen erstellt, bei denen Geschwindigkeitsunterschiede wichtig sind? Bitte hinterlassen Sie eine Nachricht, um es mir zu sagen!
JavaScript -Benchmarking ist ein Prozess, der die Leistung eines bestimmten Code -Snippets oder einer bestimmten Funktion misst. Es hilft Entwicklern zu verstehen, wie effizient ihr Code ist, und herauszufinden, wo Verbesserungen erforderlich sind. Durch den Vergleich der Ausführungszeit verschiedener Code -Snippets können Entwickler die effizienteste Lösung für die Erfüllung ihrer Anforderungen auswählen. Benchmarking ist in der JavaScript -Entwicklung von entscheidender Bedeutung, da es direkt die Benutzererfahrung beeinflusst, insbesondere in Bezug auf Geschwindigkeit und Reaktionsfähigkeit von Webanwendungen.
Sunspider ist ein beliebtes JavaScript -Benchmarking -Tool, das von Webkit entwickelt wurde. Es führt eine Reihe von Tests auf der JavaScript -Engine aus und misst die Zeit, die für die Abschließung jedes Tests benötigt wird. Diese Tests decken alle Aspekte von JavaScript ab, einschließlich Kontrollfluss, String -Verarbeitung und mathematischen Berechnungen. Je kürzer die Gesamtzeit ist, desto besser die Leistung der JavaScript -Engine.
Während alle Benchmarking -Tools darauf abzielen, die JavaScript -Leistung zu messen, variieren sie in der Art der durchgeführten Tests und der Berechnung der Ergebnisse. Sunspider konzentriert sich auf reale Anwendungsfälle und vermeidet Mikrobenchmarks, die nur eine einzelne Funktion testen. Andere Tools wie jsben.ch und jsbench.me ermöglichen es Entwicklern, ihre eigenen Tests zu erstellen und durchzuführen, was eine größere Flexibilität bietet.
Benchmarkergebnisse liefern normalerweise Zeitmessungen, die darauf hinweisen, wie lange es dauert, bis eine bestimmte Operation abgeschlossen ist. Je kürzer die Zeit ist, desto besser die Leistung. Die Interpretation dieser Ergebnisse erfordert jedoch das Verständnis des Kontextes. Beispielsweise sind einige Millisekunden von Differenz in der Benutzeroberfläche möglicherweise nicht wichtig, können jedoch für leistungsstarke Serveranwendungen von entscheidender Bedeutung sein.
Ja, Benchmarking ist eine häufige Möglichkeit, die Leistung verschiedener JavaScript -Motoren zu vergleichen. Wenn Sie die gleichen Tests an verschiedenen Motoren durchführen, können Sie ihre relative Leistung verstehen. Denken Sie jedoch daran, dass die reale Leistung von vielen Faktoren beeinflusst wird und die Benchmark-Ergebnisse nur ein kleiner Teil des Puzzles sind.
Tools wie jsben.ch und jsbench.me ermöglichen es Ihnen, Ihre eigenen JavaScript -Benchmarks zu schreiben und auszuführen. Sie können diese Tools verwenden, um bestimmte Code -Snippets zu testen oder verschiedene Möglichkeiten zur Lösung des Problems zu vergleichen. Beim Erstellen eines Benchmarks ist es wichtig, den Test so realistisch wie möglich zu gestalten und ihn mehrmals auszuführen, um genaue Messungen zu erhalten.
Während Benchmarking ein leistungsstarkes Werkzeug ist, hat es auch seine Grenzen. Das Erstellen von Tests im realen Leben kann schwierig sein, und die Ergebnisse können von vielen Faktoren beeinflusst werden, einschließlich bestimmter Hardware- und Softwareumgebungen. Darüber hinaus kann Überfeuerung von Benchmark-Ergebnissen zu Überoptimierung führen, und Entwickler verbringen zu viel Zeit damit, den Code zu verbessern, der sich nur wenig auf die Gesamtleistung auswirkt.
Benchmarking ist ein wichtiger Bestandteil des Entwicklungsprozesses, da es Entwicklern hilft, Leistungsgpässe zu identifizieren und zu überprüfen, ob ihre Änderungen die Leistung verbessern. Es sollte jedoch nicht das einzige Tool sein, um die Qualität Ihres Codes zu bewerten. Andere Faktoren wie Lesbarkeit, Wartbarkeit und Funktionalität sind ebenfalls wichtig.
Ja, Benchmarks können Ihnen helfen, Bereiche von Code zu identifizieren, die dazu führen, dass Ihre Anwendung langsamer wird. Durch die Optimierung dieser Bereiche können Sie die Gesamtleistung Ihrer Anwendung verbessern. Denken Sie jedoch daran, dass die Leistung nur ein Aspekt hochwertiger Webanwendungen ist. Benutzerfreundlichkeit, Funktionalität und Design sind ebenfalls wichtig.
Die Häufigkeit des Benchmark -Tests hängt von der Art des Projekts ab. Für leistungskritische Anwendungen möchten Sie möglicherweise regelmäßig regelmäßig bewertet werden, auch nach kleinen Änderungen. Für weniger kritische Anwendungen kann das Benchmarking weniger häufig erfolgen, z. B. nach größeren Änderungen oder bevor eine neue Version veröffentlicht wird.
Das obige ist der detaillierte Inhalt vonEditorial: zu Benchmark oder nicht zu Benchmark?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!