web-dev-qa-db-ja.com

jsPerfはどのように機能しますか?

今日私は訪問しました jsPerf そして今私は疑問に思っています…

  1. 「ops/sec」とは何ですか?
  2. 何回繰り返しますか?
  3. どの基準でどちらが速いかを計算しますか?これらの計算の背後にある式は何ですか?

例: http://jsperf.com/concatenation-vs-join

誰か教えてもらえますか?

前もって感謝します。

42
Mohit Kumar

Benchmark.js と書きましたが、これは jsPerf が使用します。

  1. ops/sec」は、1秒あたりの操作数を表します。これは、1秒間にテストが実行されると予測される回数です。

  2. 1%以下の測定で 不確かさのパーセンテージ を取得するのに必要な最小時間に達するまで、テストが繰り返し実行されます。反復回数は、環境のタイマーの解像度と、最小実行時間でテストを実行できる回数によって異なります。完了したテスト実行を5(構成可能)、または少なくとも5実行(構成可能)次に、サンプルの統計分析を実行します。したがって、テストは100,000(ほとんどの環境の最小実行時間)50 ms回繰り返され、その後繰り返される可能性があります100倍以上5秒)。サンプルサイズが大きい(この例では、100の場合、 許容誤差 は小さくなります。

  3. エラーのマージンも考慮して、どのテストが高速であるかは、ops/secだけではありません。たとえば、ops/secが低いが許容誤差が大きいテストは、ops/secが高く、許容誤差が小さいテストと統計的に区別できない場合があります。エラー。

    ウェルチのt検定 を使用しましたが、 SunSpider が使用するものと同様ですが、分散が等しい場合は 対応のない2標本のt検定 に切り替えました(分散が非常に小さい)ウェルチのt検定では、低いops /秒と高いops /秒を小さな分散と比較する際に問題が発生したため、- 自由度1未満として計算されます。また、実際のテストでは、同一のテストがテストから再テストまで〜5.5%に変動する可能性があることが示されたため、同様のops/secのテストに5%許容値を追加します。 T検定は、検定間の差が 統計的に有意 であることを確認するために使用されます。

121

著者からの防弾JavaScriptベンチマークの記事を読むことができます。 Benchmark.js ところで、オープンソースです。

6
gblazex