ホームページ >ウェブフロントエンド >jsチュートリアル >編集:ベンチマークするか、ベンチマークしないか?
Octane JavaScriptベンチマークスイートの使用を停止するというGoogleの計画について、最近いくつかのニュースの見出しを見たことがあるかもしれません。これについて知らない場合、またはタイトルの読みが終わっていない場合は、簡単に確認してください。 GoogleはOctaneを立ち上げ、業界標準のSunspiderベンチマークを置き換えました。 AppleのSafariチームによって作成されたSunSpiderは、最初のJavaScriptベンチマークの1つです。
SunSpiderには2つの問題があります。第一に、これはマイクロベンチマーク(新しいアレイを作成するために何千ものテストを考えてください)に基づいていますが、これは実際の使用法を非常に正確に反映していません。第二に、SunSpiderのランキングはブラウザメーカーの間で多くの重みを持っており、一部のベンダーは、実際のプログラムのニーズを満たすのではなく、より良いベンチマークスコアのためにJavaScriptエンジンを最適化するように導きます。場合によっては、これらの微調整により、生産コードが以前よりも遅くなります!
Octaneは、実際のワークロードをより正確にシミュレートし、JavaScriptの実装を測定する標準になるテストを作成しようとすることに焦点を当てています。ただし、ブラウザのメーカーが再び追いついており、オクタンテストの最適化が見られます。これは、ベンチマークが役に立たないということではありません。ブラウザ間の競争により、実際にはJavaScriptのパフォーマンスが大幅に改善されました。
あなたは言うかもしれません、それは少し興味深いですが、これは開発者としての私の毎日の仕事と何の関係がありますか?ベンチマークは、フレームXよりもフレームYの利点を人々に納得させようとするときにしばしば引用され、一部の人々はこれらの数字を非常に真剣に受け止めています。先週、Moonjsと呼ばれる新しいUIライブラリがいくつかのニュースアグリゲーターで広く流通していることに気付きました。 Moonjsは、自分自身を「最小化された、非常に速い」ライブラリとして位置づけ、この声明をサポートするためにいくつかのベンチマークデータを引用しました。 明確にするために、私はここでムーンズをターゲットにしていません。特にUIライブラリでは、この速度への焦点は非常に一般的です(たとえば、任意のReactクローンを見てください)。ただし、SunspiderとOctaneの例でわかるように、ベンチマークは誤解を招く可能性があります。多くの最新のJavaScriptビューライブラリとフレームワークは、何らかの形式の仮想DOMを使用して出力をレンダリングします。さまざまな実装を研究する際に、Boris Kaulは仮想DOMパフォーマンスを測定する方法の研究に時間を費やし、VDOMパフォーマンスは比較的簡単に調整してベンチマークで良い結果を達成することができました。彼の結論は、「フレームワークまたはライブラリを選択する場合、Webフレームワークのベンチマークの数字を使用して決定を下すことです。」
ライブラリの主張された速度に基づいて比較する場合、慎重になる他の理由があります。 SunSpiderのように、多くのベンチマークはマイクロバークマークであることを覚えておくことが重要です。また、特定のユースケースに対する速度の重要性を考慮する価値があります。シンプルなCRUDアプリケーションを構築することは、UIライブラリを圧倒する可能性は低く、学習曲線、利用可能な人材プール、および開発者の幸福も重要な考慮事項です。過去に、RubyがWebアプリケーションを構築するには遅すぎるかどうかについて多くの議論を見てきましたが、より速いオプションにもかかわらず、Rubyにはまだ多くのアプリケーションが書かれており、Rubyで書かれ続けています。
速度メトリックは誤解を招く可能性がありますが、構築するものに応じて使用されている場合もあります。すべての経験則と良い練習のルールと同様に、それがあなたの状況にどのように適用されるか(または)を止めて考えることをお勧めします。私はあなたの経験を知りたいです:あなたはそのベンチマークステートメントを満たさないソフトウェアを実際に使用しましたか?速度の違いが重要なアプリケーションを構築しましたか?メッセージを残して教えてください!
JavaScriptベンチマークFAQ(FAQ)
SunSpiderベンチマークツールはどのように機能しますか?
SunSpiderと他のベンチマークツールの違いは何ですか?
JavaScriptベンチマークの結果を説明する方法は?
ベンチマークを使用して、さまざまなJavaScriptエンジンを比較できますか?
JavaScriptベンチマークの制限は何ですか?
開発プロセスにおけるベンチマークの役割は何ですか?
ベンチマークは私のWebアプリケーションのパフォーマンスを改善するのに役立ちますか?
コードをベンチマークする頻度はどれくらいですか?
以上が編集:ベンチマークするか、ベンチマークしないか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。