Google Chrome runs web pages and applications with lightning speed. |
Googleは、ChromeのDevチャンネルおよびBetaチャンネルのV8エンジンに、関数の最適化に関する新しいアルゴリズムを導入したと発表した。サイズの小さいJavaScriptコードのパフォーマンスが向上しており、SunSpiderベンチマークで安定版とベータ版を比較テストしたところ、25%も高速になったとしている。
V8エンジンはJavaScriptをコンパイルする際に、まずベースコンパイラを使用してコードをあまり最適化せずにマシンコードにコンパイルし、次に、繰り返し実行される部分に対して最適化コンパイラを使用している。この最適化コンパイルに時間がかかっており、本当に最適化が必要かどうかを判断する必要があった。
これまでのV8では、実行している関数を毎ミリ秒ごとに止めてチェックし、最適化を行なっていた。この方法は、長時間実行されるプログラムにおいては有用であったが、短時間で終了するプログラムにおいては、その恩恵を受ける前に実行が終了してしまっていた。
今回DevチャンネルおよびBetaチャンネルに導入された新しいV8バージョンでは、実行中のプログラムをより詳細に解析し、速やかに最適化するかどうかを決定できるようにしている。関数が呼び出される頻度を記録するカウンタやプログラムで実行されるループ、各関数の実行時間の概算などを調べ、これらの情報をもとに時間のかかっているコードのみを正確に最適化コンパイルを使用し、実行時間の短縮に繋げているという。