Browser

Microsoft Edge(Project Spartan, Internet Explorer) 、ブラウザ周辺、Web フロントエンド開発、UI、など

Microsoft Edge まとめページ

Microsoft Edge の JavaScript エンジン Chakra

Chrome では V8 という JavaScript エンジン が使われており、
IE では Chakra というものが使われています。

 

Microsoft Edge での変更

ブラウザで動作する DLL が Edge で変更されました。
いにしえの jscriptchakra.dll になっています。

IE 11
レンダリングエンジンに mshtml.dll
JavaScript エンジンに jscript9.dll

Microsoft Edge
レンダリングエンジンに edgehtml.dll
JavaScript エンジンに chakra.dll


Chakra

JIT が最適化されました。

 

既存の使っている JIT に内包されるように、高速な実行できる Simple JIT が追加。
また、複数のスレッドを使って JIT が行われるようになったようです。

f:id:x67x6fx74x6f:20150511034317p:plain

 

オブジェクトはキーが増えると別のオブジェクトとして内部でコピーするようで、
Edge では現状のインラインキャッシュが2倍以上高速になり、
今回追加されたキーが増えてもコピーされない
特殊なオブジェクトタイプでは更に 20% 向上しました。

f:id:x67x6fx74x6f:20150511034433p:plain

 

配列の最適化が行われました、

for でループする際、変数で上限値を設定しなくても高速化されるようになるとか。

 

JS を Minify したものがさらに高速化されるようになりました。

 

どうやら、Edge のガベージコレクションはマーク・アンド・スイープ方式らしいです。
Edge はフォアグランドスレッドでマークしていて、バックグラウンドスレッドが開いている場合、
バックグラウンドスレッドでもマークの処理させることでガベージコレクションを高速化させます。

 

ECMAScript6

現状実行スピードは ChromeFirefox より速いとのこと。
また、Edge は 81% 機能をカバーしているようです。
(FF 68%、Safari 51%、Chrome 45% )

 

Edge で追加された JS の機能については、追々書いていこうと思います。

 

参照元
Microsoft Edge Web Summit 2015 / Chakra: The JavaScript Engine that powers

 

スポンサーリンク