Разработчики Chromium представили публики новую версию скриптового движка для Google Chrome – Crankshaft V8. В результате агрессивной оптимизации Crankshaft способен ускорить обработку javascript приложений на 50%. В результате веб-сервисы и приложения, которые буквально напичканы скриптами, получат заметное ускорение. Вот сравнение браузеров Chrome со старой версией V8 и с новой Crankshaft V8:
Большему ускорению подверглись тесты, отвечающие за арифметические операции, циклы и вызовы функций. Это самый значимый скачок в производительности javascript-движка со времен выхода браузера Chrome в сентябре 2008 года.
Также, по результатам тестирования на сервисах типа Gmail новый алгоритм Crankshaft позволяет ускорить запуск приложений в среднем на 12%.
Основная идея Crankshaft в адаптивной компиляции. Суть адаптивной компиляции в том, чтобы ускорять и оптимизировать наиболее часто выполняемые задачи. Как следствие, небольшие тесты, работающие в течение миллисекунд, такие как Sunspider, покажут минимальный прирост производительности от использования Crankshaft, в то время как на тяжелых приложениях и сервисах ускорение будет максимальным.
Crankshaft включает 4 основных компонента:
- Базовый компилятор, который компилирует весь код без особой оптимизации. Но даже при этом он создает на 30% меньше кода чем его прошлая версия из Chrome 9.
- Runtime Profiler. Этот компонент мониторит весь код и определяет наиболее «горячие» участки, которые необходимо оптимизировать дополнительно.
- Оптимизирующий компилятор. Занимается рекомпиляцией и оптимизацией «горячих» участков кода.
- Поддержка деоптимизации. Если оптимизация определенного участка не привела к желаемым результатам, деоптимизатор вернет код в исходное состояние.
Первая реализация Crankshaft V8 есть уже в Google Chrome 10.0.603.3 Canary. Ведутся работы над созданием версии под 64-битные и ARM системы.