Skip to content
dynamis edited this page May 19, 2021 · 179 revisions

ベンチマーク

short url: http://urls.jp/gembench

パソコンやスマホ向けに作られていて組込機器の動作環境として適切ではないものが多いが、高速化の検証用に使えるベンチマークと実行結果のメモです。スコアとして比較したい場合、何を比較しているのか、影響する設定・解像度などの影響によく注意してください。


JavaScript ベンチマーク

JavaScript 単体の速度はそんなに重要じゃないと思うが一応。

Apple がメンテしていた古典的な JavaScript ベンチマーク。単に古くて今時の JavaScript の使い方と異なるだけでなく、IE を代表として一部ブラウザのベンチマーク最適化の対象となった経緯があるため知名度は高いが結果は参考程度。結果の内訳まで保存したい場合は実行後の URL を記録する。

Board Browser Result Note
Dragon Board 410c Firefox 45 1336.9ms aarch32
Dragon Board 410c Firefox 38 1239.0ms Android default
Dragon Board 410c Chromium 56 1716.1ms Android (aarch64)
Rock Pi 4B Firefox 60 1588.7ms Debian (aarch64)
SABRE Firefox 45 1873.9ms
SABRE Chromium 40 2424.9ms
iWave RZ/G1M Firefox 52 11754.5ms 201711 build, BSP2.0, Baseline JIT 無効化
iWave RZ/G1M Firefox 52 2611.6ms 201711 build, BSP2.0, IonMonkey 無効化
iWave RZ/G1M Firefox 52 1119.5ms 201711 build, BSP2.0
iWave RZ/G1M Firefox 60 1110.1ms
Raspberry Pi 3 Firefox 52 1733.7ms
R-Car M3 Starter Kit Firefox 60 1737.3ms IonMonkey未対応
R-Car M3 Starter Kit Firefox 60 1088.3ms 初期ビルド
RZ/G2E Firefox 60 4357.1ms IonMonkey未対応
RZ/G2E Firefox 68 3054.6ms ±2.7% 初期ビルド
RZ/G2E Firefox 68 5157.9ms ±1.6% 初期ビルド, javascript.options.ion = false
RZ/G2E Firefox 78 3096.5.ms ±2.4% 2020-08-19 WIPビルド
RZ/G2M Firefox 68 1177.7ms ±1.5% 2019-10-16 WIPビルド

Chrome の JavaScript エンジン開発の指標として Google が開発・利用してきたベンチマークであり、Chrome ブラウザ間比較には不適であることに注意。他のブラウザにスコアが追いつかれてからはベンチマーク指標では開発しないと宣言し Google は開発を終了している。

Board Browser Result Note
Dragon Board 410c Firefox 45 2830 aarch32
Dragon Board 410c Chromium 56 2672 Android, aarch64
Rock Pi 4B Firefox 60 936 Debian, aarch64
iWave RZ/G1M Firefox 52 3715 201711 build, BSP2.0
iWave RZ/G1M Firefox 60 4680
Raspberry Pi 3 Chromium 60 2510
Raspberry Pi 3 Firefox 52 2700
R-Car M3 Starter Kit Firefox 60 820 IonMonkey未対応
R-Car M3 Starter Kit Firefox 68 3131 初期ビルド
RZ/G2E Firefox 60 312 IonMonkey未対応
RZ/G2E Firefox 68 1073 初期ビルド
RZ/G2E Firefox 68 281 初期ビルド, javascript.options.ion = false
RZ/G2E Firefox 78 1520 2020-08-19 WIPビルド
RZ/G2M Firefox 68 3638 2019-10-16 WIPビルド gfx.webrender.all = true, FullHD
Board Browser Result Note
SABRE Firefox 45 2325
SABRE Chromium 40 CRASH
Board Browser Result Note
Dragon Board 410c Firefox 45 13031.2ms
Rock Pi 4B Firefox 60 48350.1ms Debian, aarch64
Rock Pi 4B Firefox 60 49275.8ms ±2.9% Debian, aarch64, max cpu/gpu
SABRE Firefox 45 16920.9ms
SABRE Chromium 40 17495.6ms
iWave RZ/G1M Firefox 52 7690.4ms 201711 build, BSP2.0
iWave RZ/G1M Firefox 52 6988.0ms, 7213.3ms 201712 build, BSP2.0
iWave RZ/G1M Firefox 60 7367.6ms
Raspberry Pi 3 Chromium 60 13840.4ms
Raspberry Pi 3 Firefox 52 13302.4ms
R-Car M3 Starter Kit Firefox 60 58018.3ms IonMonkey未対応
RZ/G2E Firefox 60 180670.2ms ±0.6% IonMonkey未対応
RZ/G2E Firefox 68 34038.2ms ±3.6% 初期ビルド
RZ/G2M Firefox 68 6877.0ms ±0.9% 2019-10-16 WIPビルド
Board Browser Result Note
Dragon Board 410c Firefox 45 (aarch32) 18.464
iWave RZ/G1M Firefox 52 26.990
iWave RZ/G1M Firefox 60 27.656
Raspberry Pi 3 Chromium 60 15.240
Raspberry Pi 3 Firefox 52 17.226
R-Car M3 Starter Kit Firefox 60 7.0776 IonMonkey未対応
RZ/G2E Firefox 60 ms IonMonkey未対応
RZ/G2E Firefox 68 8.5993 ± 0.52380 初期ビルド
Board Browser Result Note
RZ/G2E Firefox 60 IonMonkey未対応
RZ/G2E Firefox 68 4.810 初期ビルド

asm.js / WebAssembly ベンチマーク

重たい数値演算も JS 側でやる場合はこのあたりのパフォーマンスも重要になる

Board Browser Result Note
iWave RZ/G1M Firefox 52 1208
iWave RZ/G1M Firefox 60 1189

Firefox で WebAssemlby のサポートが入ったのは Firefox 52 から (ESR ではデフォルト無効化されているので注意)。

まだあまりない&これが定番というのが確定していない、Wasm の実アプリケーションベースベンチマーク。

解説ページ: https://pspdfkit.com/blog/2018/a-real-world-webassembly-benchmark/

Board Browser Result Note
RZ/G2E Firefox 60 703564 IonMonkey未対応, rendering: 243810, search: 78707, export: 196446, annotation: 113083, init: 71518
RZ/G2E Firefox 68 55584 初期ビルド, rendering: 13482, search: 7910, export: 10043, annotation: 8857, init: 15292
RZ/G2E Firefox 68 172903 初期ビルド, javascript.options.ion = false, rendering: 46768, search: 30551, export: 46831, annotation: 32106, init: 16647
RZ/G2M Firefox 68 12431 2019-10-16 WIPビルド, gfx.webrender.all = true, FullHD, 3370 ms, 1913 ms, 2312 ms, 2099 ms, 2737 ms

総合ベンチマーク

SunSpider などのような JavaScript ベンチ (Octane のサブセット) からレイアウトテスト、SVG テストから GUIMark のような Canvas 系のベンチなどの組み合わせ。 元々スマホ向けで過度に重たくなく個別テスト毎のスコアも出してくれ知名度もある。但しトータルスコアが激減して何かと思ったら一部のテストの計測に失敗してスコアが 0 となっていたり、実行できてもバラツキのあるテストがあったりする点に注意。また、グラフィックス系テストも一部 JS エンジン速度依存が大きい点にも注意。最近はランキング表示のエラーで結果表示失敗するので 公式の URL ではなく GitHub のコードをデプロイしたものを使う方が良さそう。

Board Browser Result Note
Raspberry Pi 3 Firefox 52 7501 JS 2369, Layout 167, SVG 115, Periodic 282, Tree 2130, Birds 542, Invaders 1122, Collision 774, 画面解像度 1280x720
Raspberry Pi 3 Firefox 52 7251 JS 2453, Layout 155, SVG 109, Periodic 274, Tree 1986, Birds 515, Invaders 1083, Collision 676, 画面解像度 FullHD
Raspberry Pi 3 Firefox 52 (no Ion) 4466 JS 203, Layout 155, SVG 107, Periodic 265, Tree 1930, Birds 394, Invaders 918, Collision 494, 画面解像度 FullHD, IonMonkey 無効化したときのスコア。
iWave RZ/G1M Firefox 60 todo...
RZ/G2E Firefox 60 (no Ion) 3276 初期ビルド。 JS 246, Layout 217, SVG 182, Periodic 176, Tree 988, Birds 476, Invaders 553, Collision 438
RZ/G2E Firefox 68 8132 初期ビルド, 1920×1080, gfx.webrender.all = true, JS 1162, Layout 512, SVG 4764, Periodic 235, Tree 0, Birds 403, Invaders 549, Collision 507
RZ/G2E Firefox 68 4939 初期ビルド, 1920×1080, gfx.webrender.all = false (default), JS 980, Layout 303, SVG 350, Periodic 250, Tree 1455, Birds 439, Invaders 596, Collision 566
RZ/G2M Firefox 68 17274 2019-10-16 WIPビルド gfx.webrender.all = true, FullHD, 3190,913,6872,607,2169,956,1511,1056

一部の環境では実行後の結果ランキング表示時にエラーがでて停止するコンソールのログから個別スコアが分かる。スコアが 0 になっているものが含まれる場合は該当テストが実施できておらずスコア比較にならないので注意。

その他のベンチマーク (参考)

  • UI Benchmark
    • 各種 UI フレームワークを使って (アプリレベルでなくプリミティブな) DOM 操作を行うベンチマーク。フレームワークの確認によく使われているようで Preact, Inferno あたりのテストに使いたいがどうもメンテ不足で動かなかったり Firefox では計測値が 1000 単位だったりで使えなさそう
  • Basemark Web 3.0
    • 老舗ベンチマーク企業の総合ベンチマークだが重すぎて組み込みテストには向かない
  • WebAudio Benchmark
    • Mozilla が自動テストで監視しているが WebAudio の処理速度は用途的に重要度が低いので計測不要
  • GEM DOMBench
    • 単なる React のコンテンツ例なのだが実行時間確認も可能 https://github.com/webdino/GEM-DOMBench
    • Gecko 60 on RZ/G2E では Total 1294.74sec (chat: 182.40, photo: 659.41, bems: 245.17, graph: 207.76)
    • Gecko 68 on RZ/G2E (初期ビルド) では Total 1345.30sec (chat: 159.64, photo: 796.75, bems: 223.66, graph: 165.24) - 全体的に高速書いている中で photo だけが明らかに遅くなっている
    • Gecko 68 on RZ/G2E (初期ビルド, WebRender 有効) では Total 1344.76sec (chat: 158.96, photo: 782.05, bems: 233.23, graph: 170.52) - DOM 操作メインなので WebRender が関係するような処理ではない。
    • 低性能・低解像度環境向けパラメータでのビルド例: https://dombench-iwg22m.netlify.com/

HTML5test (参考)

  • HTML5 test
    • 各項目の結果まで保存するときは Save Results で表示される QR コードを読み取るなどして結果 URL を記録する
    • 一般的な PC 版でのスコア例 (組み込みボードでは一部 API が動かなかったりするとスコアが低くなる):
    • Firefox 60 = 497
    • Firefox 52 = 474
    • Firefox 45 = 456
    • Firefox 40 = 429
    • Chromium 60 = 523
    • Chromium 50 = 489
    • Chromium 40 = 456
    • Edge 13 = 433
    • Edge 12 = 377
    • IE 11 = 312
    • Safari 9.1 = 370
    • Safari 9.0 = 360
Board Browser Result Note
iWave RZ/G1M Firefox 52 201711 build, BSP2.0
iWave RZ/G1M Firefox 60 477 201810 build
R-Car M3 Starter Kit Firefox 60 477
RZ/G2E Firefox 60 489/555
RZ/G2E Firefox 68 484/555 初期ビルド

計測環境

測定環境についてのメモ

  • OS について

    • Android などと明記されていないものはすべて Open Embedded の標準 BSP を利用
  • CPU Arch について

    • aarch32 と aarch64 両方ある環境についてはいずれか明記する
    • RZ/G1 シリーズは aarch32、RZ/G2 シリーズは aarch64 など片方しかないものは割愛
  • Dragon Board 410c

    • 購入時初期の Android には Firefox 38 が同梱されている
    • Chromium や Firefox のビルドをして動作可能
  • Raspberry Pi 3

    • Raspbian 標準では Chromium が同梱されている
    • apt-get install firefox-esr で Firefox ESR をインストールしたもの
      • Firefox 52 時点では Compositing は Basic だし AzureCanvasAccelerated = 0, HW_COMPOSITING = blocked, OPENGL_COMPOSITING = unavailable となっているビルド (設定)
  • Rock Pi 4

    • RK3399 搭載で低価格高性能な Raspberry Pi 互換ボード
    • Debian aarch64 4.4.154.c83 カスタムイメージ
    • Firefox ESR 60.7 - apt install で導入可能
    • max cpu/gpu と書いているものは CPU/GPU governor を performance (動作周波数最大) に設定している状態での計測。GPU はすぐに最大周波数になる (特に 4core 側) が GPU 系のベンチは周波数が上がらないままのことがあり、governor 設定によってスコアが大きく変わる
  • iWave RZ/G1M

  • R-Car M3

  • R-Car E3 (Ebisu-4D)

    • Firefox 60
      • Stylo 有効。R-Car M3 のもの同様 IonMonkey 有効化できていない
  • RZ/G2E Reference board

    • Firefox 60
      • Stylo 有効。R-Car M3 のもの同様 IonMonkey 有効化できていない
    • Firefox 68
      • IonMonkey 有効。WebRender 有効。

関連リンク

Clone this wiki locally