JavaScriptエンジン大戦:GoogleはStrongModeとSoundScriptの案件を提出し、V 8の性能を向上させる.

1926 ワード

JavaScriptエンジンの性能大戦はニトロファンで、Chrome V 8エンジンチームは新しい計画を発表しました.この計画で彼らは二つの新しい仮想マシン概念を紹介しました.強化モードと強化シナリオ(StrongScript).
強化モードはES 5厳格モードの一つの拡張であり、このモードでは性能予測可能なJavaScript特性のみを使用できる.それはJavaScript言語のサブセットであり、許可された場合には、仮想マシンの完全な最適化を妨げるコードの一部の特性をオフにする.
例を挙げると、強化モードの中の一つの制限は配列に空洞がないことです.SoundScriptを記述するブログ記事では、Dr.Axel Rauschmayer氏は、
配列に空洞がない場合、それらの要素は連続メモリに保存され、インデックスでアクセスできます.配列が空洞になるとインデックスから要素へのマッピングが必要です.
したがって,配列空洞を除去すれば性能が向上する.このモードを使用するには、開発者はコードの先頭に次のような声明を入れる必要があります.

use strong 
強化モード規範に従って作成したJavaScriptはまだ他のブラウザで実行できます.強化モードを有効にするとV 8が追加的な性能最適化を行うことを意味します.提案されていないコードを使用すると、エラーメッセージが投げられます.Mozillaの研究員、Emscriptenの責任者であるAlon Zakaiはこれに対して非常に心配しています.
これは私を困らせています.正常に運行すれば大丈夫ですが、もし拡張モードがあったら、使用を勧めないコードがあったら、他のブラウザは大きく違っています.もちろん、この問題を避けるためには、エラーではなく警告を出す必要があります.ルールとして、彼らが最適化できる内容を提示するだけで十分です.
JavaScriptの重大な変更になる可能性のある関連提案では、SoundScriptは、実行時にJavaScriptにユーザー向けのタイプを追加することを意図している.JavaScriptの特徴の一つはダイナミックタイプのシステムですが、アプリケーションの規模が大きくなるにつれて、大型プロジェクトを実行する需要を満たすために、TypeScriptのような外部タイプのシステムが雨後のタケノコのように出現します.
実際、SoundScriptはType Scriptに基づいてできるだけType Scriptと似たような標準を実現します.V 8チームは仮想マシンで強いタイプをサポートするとタイプ情報を早く積極的に最適化することができます.
Hacker Newsでの議論の中で、JavaScriptの創始者Brendan Eichは、Chromeがこれらの提案の上で成果があることを望む:
V 8チームはTC 39とともに意味化のために動作し、これらのコードをオープンすることを承諾しています.最悪の場合は、もう一つのChromeが所有するゲームになり、もう一つのChromeの権力場になります.しかし、すべての兆しは、これまでのように物事が進んでいないことを示しています.
Googleは強化モードとSoundScriptはしばらく実験的だと主張していますが、このような新しい特性は標準に入る前にまだ長い道のりがあります.ECMAScriptが担当する標準コアTC 39は、新しい基準を形成する前に、SoundScriptのような提案を十分に実践する必要があります.
開発者に強化モードの提案を読んでもらうように勧めます.開発者たちはコマンドラインの中で次のようなフラグを使ってChrome canaryを開くことができます.

--js-flags="--strong-mode" 
英語の原文を見る:http://www.infoq.com/news/2015/03/Google-StrongMode-SoundScript-V8
夏雪さんに感謝します.
InfoQ中国語ステーションに投稿したり、コンテンツ翻訳に参加したりします[email protected].新浪微博(@InfoQ)や騰訊微博(@InfoQ)を通じて、私たちに関心を持ってくれて、編集者や他の読者や友達と交流することも歓迎します.