Opera’s newest Web browser introduces a new technology platform.

OperaのJavaScriptエンジンである「Carakan (チャラカン)」に改善が加えられたことが「JavaScript on a diet」にて報告されている。Carakanではオブジェクトプロパティと型のトラッキングに自動クラスを使っていると説明があるが、これにおいてオブジェクトのレイアウトもプロパティ型とともに記録するように変更したところ、結果としてオブジェクトごとのオーバーヘッドが軽減されたほか、従来よりも優れたJITコードを生成できるようになったという。説明によればCarakanが消費するメモリ容量が6%から7%ほど削減され、状況によってはもっと減ることになるとされている。

JavaScript on a diet」に掲載されているOperaのバージョンは「12.00 pre-alpha 1020」。ひとつ前の開発版リリースである「12.00 pre-alpha 1017」と、現在の安定版リリースである「11.50 1074」を使ってV8ベンチマークを実施してみた。結果は次のとおり。

V8ベンチマーク結果「3744」 - Opera 12.00 pre-alpha 1020

JavaScriptにおけるメモリ使用量「523kB」 - Opera 12.00 pre-alpha 1020

V8ベンチマーク結果「3590」 - Opera 12.00 pre-alpha 1017

JavaScriptにおけるメモリ使用量「524kB」 - Opera 12.00 pre-alpha 1017

V8ベンチマーク結果「3430」 - Opera 11.50 1074

JavaScriptにおけるメモリ使用量「2180kB」 - Opera 11.50 1074

V8 Benchmark Suiteの結果。たしかに最新版ほどいい値を出している。

EcmaScriptで消費されたメモリ量の比較。11.50と12.00 pre-alphaで大きく容量が変わっていることがわかる。1020と1017ではごくわずかならが、1020の方が消費量が少ない。

たしかに、実行速度の向上とメモリ使用量の削減が実施されたことが確認できる。V8 Benchmark Suiteを実行するだけの簡単なテストしか実施していないが、それでも11.50系と12.00系でメモリ使用量に大きな差が出ていることは注目しておきたい。次期リリースとなる「Opera 12」はこれまでのOperaよりもメモリを消費しないバージョンになりそうだ。