CPUベンチマーク
ブラウザで直接、プロセッサのコア数に合わせてスケーリングされた実際の Web Workers を使用して、シングルコアおよびマルチコアの JavaScript パフォーマンスを測定します。
CPU benchmark suite
Seven real computational workloads plus a multi-core scaling test. Detected 4 logical cores.
—
Waiting
—
Waiting
—
Waiting
—
Waiting
—
Waiting
—
Waiting
—
Waiting
—
Waiting
CPUベンチマーク のクイックガイド
1分未満で完了- 1電力設定が結果を制限しないように、ノートパソコンは電源に接続してください。
- 2「ベンチマークを実行」をクリックし、タブを前面に置いてください。
- 3各ワークロードは、独自の時間とスループットを報告します。
- 4マシンを比較するために全体スコアを使用し、絶対的な評価とはしないでください。
概要
CPUベンチマークは、プロセッサが定義された一連の命令をどれだけ速く実行できるかを測定します。このツールは、そのアイデアをJavaScriptを使用してブラウザ内で完全に実行します。これは、実際のプロセッサ、現在の電力状態、およびブラウザのJavaScriptエンジンがコードをコンパイルして実行する効率の組み合わせを測定することを意味します。この組み合わせこそが、ブラウザが日常的にどれだけサクサク動作するかに影響を与え、単独で実行される合成的なネイティブベンチマークよりも、ほとんどの人にとってより関連性の高い数値となります。
このスイートは、7つの異なるシングルスレッドワークロードを次々に実行します。素数篩、512x512倍精度行列乗算、Mandelbrotフラクタルレンダリング、800万要素配列ソート、SHA-256ハッシュ化、LZ形式圧縮、および400万点FFTです。それぞれが自身のウォールクロックタイムと、行列計算のGFLOPSやハッシュ化のMB/sなど、適切な単位でのスループット値を報告します。8番目のステージでは、論理コアごとに1つのWeb Workerを生成して実際のマルチコアスケーリングを測定し、概要はすべてを合計時間と全体スコアにまとめます。
Web Workerは、JavaScriptを個別のスレッドで実行するための真のブラウザ機能であり、ここでは別個のファイルではなく、メモリ内のBlob URLから作成されるため、何もダウンロードやインストールはされません。各ワーカーは独立して実行され、その結果をページに報告し、それらがマルチコアスコアのために合算されます。
結果の読み方
7つのワークロードカード
各カードは、そのワークロードにかかった時間と、素数篩およびMandelbrotレンダリングのMop/s、行列乗算のGFLOPS、配列ソートのMelem/s、SHA-256および圧縮のMB/s、FFTのGop/sといった自然な単位でのスループット値を示しています。時間が短いほど、レートが高いほど優れています。JavaScriptエンジンの違いによってスケールが変わるため、これらの数値を別のデバイスの数値と直接比較するのではなく、同じマシンでの以前の実行結果と比較してください。
マルチコアスケーリング
スケーリングカードは、まず1つのWeb Workerを単独で測定し、次にすべてのWeb Workerを同時に測定し、その倍率を報告します。8つの論理コアを持つマシンが6倍から7倍に達する場合、ビデオエンコーディングやコードコンパイルなどのタスクに対して十分な並列処理の余裕があることを示します。倍率がはるかに低い場合は、メモリ帯域幅の制限、熱によるスロットリング、またはバックグラウンド負荷がコアが実際に同時に実行できる作業量を制限している可能性を示唆しています。
合計時間と総合スコア
合計時間は7つのワークロードの合計であり、全体スコアは各ワークロードを一般的な現代のノートPCと比較して正規化しており、約300点が中程度です。500点以上は高速であり、150点未満は通常、スロットリングされた、古い、または高負荷のハードウェアを意味します。
低いスコアが実際に何を意味するか
オンラインで調べることができる、お使いのCPUモデルの典型的スコアを大幅に下回るシングルコアスコアは、ハードウェアの故障ではなく、クロック速度を制限する省電力設定、熱問題、または高いバックグラウンド負荷を示唆していることが多いです。ハードウェア自体について結論を出す前に、ノートPCを電源に接続し、他のアプリケーションを閉じて、もう一度テストを実行してみてください。
トラブルシューティング
スコアが予想よりもはるかに低いようです
お使いのノートPCがバッテリーセーバーまたは「効率」電源モードになっていないか確認してください。これらのモードは通常、電力を節約するためにCPU周波数を定格最大値よりも大幅に制限します。テストの前にオペレーティングシステムの電源設定で「バランス」または「パフォーマンス」電源モードに切り替えることで、大きな違いが生じることがあります。
マルチコアテストが停止しているか、非常に遅いようです
デバイスのメモリが非常に限られている場合、一度に多数のワーカーを生成すると、オペレーティングシステムがメモリをディスクにスワップし、すべてが劇的に遅くなる可能性があります。他のブラウザタブやアプリケーションを閉じてメモリを解放し、再度テストを実行してください。
実行ごとに結果が大きく異なります
バックグラウンドOSアクティビティや熱状態により、ある程度のばらつきは予想されますが、20~30パーセントを超える大きな変動がある場合は、ブラウザ拡張機能、アンチウイルススキャン、自動更新など、何かがCPU時間を競合していることを意味します。システムが1分間アイドル状態になった後、再度テストを実行してみてください。
シングルコアとマルチコア: 両方が重要な理由
すべてのソフトウェアが複数のコアを効果的に利用できるわけではありません。単一のウェブページの読み込み、ほとんどの日常的なアプリケーションの実行、多くのゲームといったタスクは、その作業の多くが簡単に分割できない逐次的な連鎖で発生するため、依然としてシングルコア性能に大きく左右されます。一方、ビデオレンダリング、コードコンパイル、複数のブラウザタブの同時実行などのタスクは、追加のコアから大きな恩恵を受けます。
これが、コア数が多くても速度の遅いCPUよりも、コア数が少なくても速度の速いCPUの方が、純粋なマルチコアベンチマークで多コアチップが圧倒的に優れていても、日常のブラウジングではよりサクサク感じられる理由です。2つのマシンを比較する際は、検討中のデバイスに有利な方を選ぶのではなく、両方の数値を一緒に見てください。
一貫性のある比較可能な結果を得る
- ほとんどのシステムではバッテリーモードでCPU速度が制限されるため、テスト前にノートPCを電源に接続してください。
- バックグラウンドタブ、特に動画を再生しているもの、ファイルを同期しているもの、または他のウェブアプリを実行しているものを閉じてください。
- 開始前にデバイスを20~30秒間アイドル状態に保ち、最近の活動の急増が落ち着くようにしてください。
- テストを2、3回実行し、単一の実行結果ではなく中央値を使用してください。
- 数週間または数ヶ月にわたって変更を追跡する場合は、毎回同じブラウザでテストしてください。
よくある質問
ブラウザベースのCPUベンチマークの精度はどの程度ですか?
これは、特定のプロセッサ、ブラウザ、および現在のシステム負荷におけるJavaScript実行速度の相対的な尺度としては正確ですが、JavaScriptエンジンを介さずに生の命令スループットをテストするCinebenchやGeekbenchのようなネイティブベンチマークとは直接比較できません。
私のマルチコアスコアが、コア数×シングルコアスコアと正確に等しくないのはなぜですか?
メモリ帯域幅の共有、持続的なマルチコア負荷下での熱スロットリング、およびオペレーティングシステムのスケジューリングオーバーヘッドのため、完璧な線形スケーリングはほとんど発生しません。理論的な線形スケーリングの60〜90パーセントが見られるのは正常であり健全です。
navigator.hardwareConcurrency は実際に何を報告しているのですか?
これはブラウザが利用可能な論理プロセッサの数を報告し、ハイパースレッディングまたは同時マルチスレッディングコアを含みます。ハイパースレッディングを備えたクアッドコアCPUは通常8と報告しますが、実際に重い処理を行う物理コアは4つだけです。
このテストは、ループを速く実行する代わりに Web Workers を使用するのはなぜですか?
単一の JavaScript スレッドは、コードの書き方に関わらず、一度に1つの CPU コアしか使用できません。Web Workers は、オペレーティングシステムが異なる物理コアまたは論理コアにスケジュールできる真に分離されたスレッドを生成します。これは、ブラウザ内から実際のマルチコアスループットを測定する唯一の方法です。
私のラップトップのスコアが、はるかに古いデスクトップよりも低いのはなぜですか?
ラップトップは、特にこのようなベンチマークのような持続的な負荷がかかる場合、熱とバッテリー寿命を管理するために定格クロック速度の一部で動作することがよくあります。冷却性能の高いデスクトップ CPU は、より長い時間高いクロックを維持でき、これは各ステージが1秒近く実行される JavaScript ベンチマークで明確に表れます。
他のタブやアプリを実行するとスコアに影響しますか?
はい、著しく影響します。バックグラウンドタブ、特にビデオを再生したりファイルを同期したりするものは、同じ CPU コアを奪い合います。より正確な測定値を得るには、他のタブを閉じ、ベンチマークを実行する前にシステムを数秒間アイドル状態にしてください。
7つのワークロードは何を測定していますか?
素数篩(Prime sieve)はメモリ制約のある整数演算を、行列乗算(matrix multiply)は浮動小数点スループットを、マンデルブロ(Mandelbrot)はタイトな算術ループを、配列ソート(array sort)はメモリアクセスと比較を、SHA-256 はビット演算と回転が多用されるコードを、LZ 圧縮(LZ compression)はハッシュ化と分岐の多いマッチングを、FFT は大きな配列に対する再帰的なバタフライ演算をテストします。これらを合わせると、単一のループよりもはるかに多くの領域をカバーします。
このベンチマークは完了するのに数秒かかるのはなぜですか?
各サブテストは、JIT コンパイルのウォームアップ効果が落ち着き、測定が統計的に意味のあるものになるように、一般的に1ステージあたり1秒未満で十分な長さ実行される必要があります。非常に短いバーストは、定常状態の速度よりも1回限りのコンパイルオーバーヘッドに支配される可能性があります。
これでコンピュータをアップグレードすべきかどうかを判断できますか?
これは妥当なデータポイントですが、唯一の判断材料ではありません。もしあなたのスコアが、同等の最新 CPU の公開ベンチマークと比較して劇的に低く、かつ通常の作業中にコンピュータが遅く感じる場合、それはアップグレードが役立つ良い兆候です。これをメモリテストやストレージテストと組み合わせて、より全体像を把握してください。
同じコンピュータで2回実行した際にスコアが変わったのはなぜですか?
JavaScript engines apply adaptive optimization, background processes vary run to run, and thermal state changes with usage, so a 5 to 15 percent variance between runs is completely normal. Consistent large swings usually indicate something else is consuming CPU in the background.
ブラウザの選択は CPU ベンチマークの結果に影響しますか?
はい。異なる JavaScript エンジン、例えば Chrome と Edge の V8、Firefox の SpiderMonkey、Safari の JavaScriptCore は、コードを異なる方法で最適化します。使用するブラウザによって、同じハードウェアでも著しく異なるスコアが見られるのは正常です。