BT

InfoQ ホームページ ニュース iPhone XSのJavaScriptパフォーマンスについて

iPhone XSのJavaScriptパフォーマンスについて

ブックマーク

原文(投稿日:2018/11/27)へのリンク

JavaScriptパフォーマンスベンチマークの最初のレビューによると、現実世界のフレームワークのローディングシナリオのパフォーマンスを比較するSpeedometer 2.0ベンチマークにおいて、iPhone XSとiPhone XS maxはiMac Proよりも優れたパフォーマンスを示している。

Ruby on Railsの作者でBasecampの創業者でCTOのDavid Heinemeier Hansson氏は、Twitterで議論を始めた

Speedometer 2.0 JavaScriptベンチマークによると、iPhone XSはiMac Proよりも高速だ。これは僕がこれまでテストした中で最速のデバイスだ。iPhone 8/Xチップよりも45%も上がってるなんて。Appleはどうやったんだ?

このツイートは、どうすればこれほどのパフォーマンス改善が可能なのか、様々な憶測を呼んだ。

curiosity.ai CTOのRafael Oliveira氏は、AppleはMacデスクトップのx86用よりも、ARM用にJSコンパイラを最適化しているように見えると述べた。

でも、そこがポイントだ。Appleはもうx86 Safariをあまり最適化していないようだ、でもARM JSコンパイラは愛されている... 彼らのCPUが素晴らしくないと言うわけではない、ただ、JSのベンチマーク時、差が大きくなるようだ。

ソフトウェアエンジニアのGreg Parker氏は、最新のARMの命令セットARMv8.3-AがJavaScript性能を特に改善することを指摘した。

ARMv8.3で、新しいエラー付きfloat-to-int命令が追加された。範囲外の値はJavaScriptが望むように処理される。JavaScriptのセマンティクスを得るのに、以前の命令はずっと遅かった。JavaScriptの数値はデフォルトでdoubleなので、多くの変換が必要になる。

ARMは実際、ARMv8.3-Aという多数のアップデートをリリースした。これにはJavaScriptデータ型変換の改善も含まれている。

JavaScriptでは、すべての数値に倍精度浮動小数点を使います。ところが、ビット演算をするためには、これを32ビット整数に変換する必要があります。そのため、倍精度浮動小数点から整数への変換、および変換された数値が実際に整数だったかチェックする必要性が比較的よく発生します。

ARMv8.3-A命令は、倍精度小数点数を符号付き32ビット整数に変換してパフォーマンスを向上させるのに役立つ。

しかし、これはパフォーマンス向上の理由ではないことがわかっている。ソフトウェアエンジニアのSaam Barati氏が、iOS 12 Safariはまだこれらの命令を利用していないと説明したためだ。

最初のレポート以後、ARMv8.3-A命令を利用する改善がWebKit Nightlyで行われており、Safariの今後のバージョンに入ることになるだろう。注目すべきは、Barati氏がJetStream2テストの各種結果におけるパフォーマンス向上を指摘していることだ。

 stanford-crypto-aesで15%改善
 stanford-crypto-pbkf2で30%改善
 stanford-crypto-sha256で97%改善

全体的に見て、この修正により、ARMv8.3-Aサポートのない現在のSafariのバージョンよりも、全体で0.5-2%のパフォーマンス改善が見込まれる。

Anandtechの詳細なiPhone XSパフォーマンスレポートによると、JavaScriptパフォーマンスが大きく改善した理由で最も可能性が高いのは、新しいメモリサブシステムだ。

403.gccで部分的に、429.mcf、471.omnetpp、473.Astar、483.xalancbmkで最も効果があるのは、メモリサブシステムが賢明であることです。ここでA12は30-42%と驚くほどのパフォーマンス向上を成し遂げました。Appleは最近の世代で最大のフォーマンス向上の1つを成功させたため、新しいキャッシュ階層とメモリサブシステムがここで大きな成果をもたらしていることは明らかです。

したがって、ARMの改善は計算量の多いJavaScript操作には役立つが、メモリサブシステムの改善ほど大きなものではない。

結果的に、多くの人は、将来のデスクトップおよびラップトップMacのために、いつAppleはIntelからARMに切り替えるのだろうと思っている。これにより、現在のパフォーマンスを超える同様の改善がなされるのだろうか?

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。