Unity を検索

WebGLベンチマーク結果のアップデート

2015年12月15日 カテゴリ: テクノロジー | 4 分 で読めます
取り上げているトピック
シェア

Is this article helpful for you?

Thank you for your feedback!

一年ちょっと前、私たちはUnityのWebGLに関する異なるブラウザー間でのパフォーマンスベンチマークのブログ記事をアップしました。そろそろこのベンチマークも立ち戻って更新する時期だと思いましたので、どのように数値が変わったのか調べてみました。

Microsoftはその後、Windows 10で新しいEdgeブラウザーをリリースしました。このブラウザーはasm.jsをサポートし、かつその機能はデフォルトで有効になっています - だので、どのくらい良い結果が出るのか大変興味がありました。その他、私たちはShared Array Buffersが有効になってマルチスレッドでコードが実行出来るようになったUnityの実験ビルドも作ったので、それでどのくらいのパフォーマンスの改善が見込めるのかもチェックしたいと思いました。このバージョンのUnityはShared Array Bufferサポートが有効になったFirefoxのナイトリービルドを使ってテストすることにしました。

もしお使いのブラウザーで今回のベンチマークを実行したい場合は、ぜひブラウザでこちらをアクセスして試してみて下さい。

Untitled 2

去年のベンチマークからの手順の変更点に関するノート:

  • このベンチマークは今回アップデートしたベンチマーク・スイートをUnity 5.3でビルドしたものを使用しています。ベンチマーク・スイートのプロジェクトフォルダーはこちらからダウンロード出来ますので、お使いのローカル環境や別のプラットフォームでもご自由にお試しいただけます。
  • このバージョンは前回存在していた全てのアートワークやアイキャンディーを除去しています。それらはベンチマークに一切の価値を付与しませんし、プログラマーによるアートはどちらにしろショボいのでやめにしました。アセットを除去することでビルドも小さくなりましたし、より重要な点はプロジェクトフォルダーを再配布することが可能になったということです。(上記のリンクを参照下さい)
  • “Mandelbrot GPU”(マンデルブロGPU)はブラウザ間の差異をあまり示さず、基本的に単なるGPUのベンチマークでしかなかったので、テストスイートから除外することにしました。副作用としては、これによりブラウザーの全体スコアの相対的な差の値が前回よりもより小さくなるという影響が出ています。
  • 去年までは入れていたネイティブスタンドアローンビルドとの比較も誤解を招きやすいので除去することにしました。私たちはプラットフォームが異なるときに実際には全く違うコードを実行するので(たとえば異なるクオリティ設定で全く違うシェーダー実装を使用したり、そもそもスクリプトエンジン自体が違ったりもします)これはミスリーディングな比較だと判断しました。
  • 私たちは以前ベンチマークを実行するときには、最新であった EdgeHTML 12 (Edge 20.10240.16384.0) を使用しましたが、デフォルトではasm.jsのサポートは有効ではなかったので、これを手動で有効にして利用しました。今現在ではEdgeHTML 13がリリースされており、デフォルトでasm.jsのサポートがデフォルトで有効になっています。

 

こちらがベンチマーク・スイートによるそれぞれのブラウザーでの総合スコアです。ベンチマークは 3.3.GHzの Core i7 CPU と Nvidia GTX 960 GPU を載せたWindows 10 PCでの実行結果です。Shared Array Buffers サポートの入ったFirefox 45はナイトリービルドのFirefoxと実験ビルドのUnityを使っているので、グレーのバーで表現しています:

Screen Shot 2015-11-30 at 1.51.33 PM

こちらがMac OS Xでの異なるブラウザー間のスコアです。2.6 GHz のCore i7 CPUを載せたRetina MacBook Pro 15”での実行結果になります(他のブラウザーとSafariの比較用にどうぞ):

Screen Shot 2015-11-10 at 11.12.52 AM

こちらがWindowsでの個々のベンチマークの違いです。個々のテストについて、32bit版のFirefox 41を1.0としてスケールしています:

Screen Shot 2015-11-30 at 1.52.40 PM

こちらがOS Xについての個々のベンチマークです。こちらも個々のテストのFirefoxを1.0としています:

Screen Shot 2015-11-10 at 10.00.57 AM

こちらが去年のベンチマークに対する今年のベンチマーク結果の全体的な比較です。去年からパフォーマンスがどのように変わったかが分かります。これは 2.6 GHz Core i7 CPUのRetina MacBook Pro 15”を使ったMac OS Xでのスコアの比較です:

Screen Shot 2015-11-10 at 10.22.29 AM

最後に、こちらがUnityのコンテンツが起動するまでの時間に対するベンチマークになります。下のバーは個々のブラウザーでベンチマークプロジェクトを開いてから最初のフレームがレンダリングされるまでの秒数です。このとき、コンテンツはローカルディスクから読み込まれているので、ネットワークからのダウンロード時間は無視されています。Firefoxはasm.jsのコンパイル結果をキャッシュするので、同じコンテンツが2回目にロードされる時にはコンパイルがスキップ出来、結果ロードが高速になります。ベンチマークではFirefoxはこの2つのケース(最初のロード(cold)と2回目のasm.jsのコンパイルキャッシュが聞いた時のロード(hot))を載せています:

Screen Shot 2015-11-30 at 1.35.35 PM

わかったこと:

  • 64bit版のFirefox 42が現在出荷されているブラウザーの中でベンチマークでは最速をマークしました。32bit版のFirefoxは64bit版に比べて目に見えて遅いことも分かりました。
  • 新しい挑戦者として登場したEdgeはベンチマークでは2位にマークし、ほとんどのベンチマークにおいてFirefoxに近い結果を叩き出しました。(しかも、32bit版のFirefoxよりも高速でした)WebGLのレンダリング負荷を試すベンチマーク各種(ParticlesやAsteroid Field)では、Edgeは全てのテストしたブラウザーの中で最高のパフォーマンスを記録しました。
  • Safariは1年前はChromeに比べて大幅に遅い結果を出していましたが、今回はChromeに匹敵するパフォーマンスを発揮しました。
  • Internet Explorer 11 は概ねすべてのベンチマークで他のブラウザーより大幅に遅く、基本的にはUnityのWebGLコンテンツを再生するには遅すぎるブラウザーと言えます。
  • Shared Array Buffersを有効にしたUnityのビルドはパフォーマンスを大幅に(ベンチマークによっては数倍)改善することが分かりました。これは将来期待できるパフォーマンスの改善がどの程度かということの見通しとして有効な情報だと言えます。
  • 全体的に、Firefoxでは、1年前と比べて大体18%パフォーマンスの改善が見られました。これはFirefox 41がFirefox 32に比べてより高速に動作するようになったことも一因だと考えられますが、より大きくはUnity自体の改善とemscriptenコンパイラーの改善による結果と考えられます。この結果は64bit版のFirefoxが長く存在するOS Xに関するものです。Windowsではそもそも64bit版のFirefox自体がようやくリリースされたことにより、改善の幅はより大きなものとなるでしょう。
  • ロード時間を見てみると、ほとんどのモダンなブラウザーはベンチマークプロジェクトを大体5〜7秒でロード出来ています。Firefoxはasm.jsのコンパイル結果をキャッシュ出来るので、2回目のロードを1.5〜2秒まで圧縮できています。
2015年12月15日 カテゴリ: テクノロジー | 4 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

取り上げているトピック