Новый Crankshaft V8 для Google Chrome

Разработчики Chromium представили публики новую версию скриптового движка для Google Chrome – Crankshaft V8. В результате агрессивной оптимизации Crankshaft способен ускорить обработку javascript приложений на 50%. В результате веб-сервисы и приложения, которые буквально напичканы скриптами, получат заметное ускорение. Вот сравнение браузеров Chrome со старой версией V8 и с новой Crankshaft V8:

Большему ускорению подверглись тесты, отвечающие за арифметические операции, циклы и вызовы функций. Это самый значимый скачок в производительности javascript-движка со времен выхода браузера Chrome в сентябре 2008 года.

Также, по результатам тестирования на сервисах типа Gmail новый алгоритм Crankshaft позволяет ускорить запуск приложений в среднем на 12%.

Основная идея Crankshaft в адаптивной компиляции. Суть адаптивной компиляции в том, чтобы ускорять и оптимизировать наиболее часто выполняемые задачи. Как следствие, небольшие тесты, работающие в течение миллисекунд, такие как Sunspider, покажут минимальный прирост производительности от использования Crankshaft, в то время как на тяжелых приложениях и сервисах ускорение будет максимальным.

Crankshaft включает 4 основных компонента:

  1. Базовый компилятор, который компилирует весь код без особой оптимизации. Но даже при этом он создает на 30% меньше кода чем его прошлая версия из Chrome 9.
  2. Runtime Profiler. Этот компонент мониторит весь код и определяет наиболее «горячие» участки, которые необходимо оптимизировать дополнительно.
  3. Оптимизирующий компилятор. Занимается рекомпиляцией и оптимизацией «горячих» участков кода.
  4. Поддержка деоптимизации. Если оптимизация определенного участка не привела к желаемым результатам, деоптимизатор вернет код в исходное состояние.

Первая реализация Crankshaft V8 есть уже в Google Chrome 10.0.603.3 Canary. Ведутся работы над созданием версии под 64-битные и ARM системы.