За последний год слава JavaScript-движка TraceMonkey, который компания Mozilla использовала для браузера Firefox в 2008 году, понемногу угасла на фоне успехов браузеров-конкурентов, отличающихся более высоким быстродействием. Согласно результатам стандартных тестов на производительность JavaScript, теперь Firefox отстает от Safari, Chome и Opera. Не желая уступать конкурентам, Mozilla приступила к разработке нового JavaScript-движка, получившего название JägerMonkey.
Включив в состав нового движка код, используемый в проекте Apple WebKit, на основе которого построены браузеры Safari и Google Chrome, специалисты компании надеются достичь существенного повышения быстродействия. Для решения этой задачи в JägerMonkey найдут применение технологии оптимизации, присутствующие в TraceMonkey, и высокоэффективный фреймворк JavaScriptCore. Если учесть, что «война браузеров» постепенно превращается в соревнование по скоростной обработке JavaScript, новый движок может дать Firefox, при сохранении других его достоинств, значительное преимущество перед соперниками.
В используемом сейчас JavaScript-движке Firefox за генерацию кода отвечает nanojit, созданный компанией Adobe Systems для исполнения кода ActionScript в составе Flash-приложений и выпущенный в 2006 году как продукт с открытым исходным кодом. Этот генератор должен был использоваться в проекте Tamarin, работа над которым в настоящий момент приостановлена.
В движке JägerMonkey за некоторые функции по-прежнему будет отвечать nanojit, хотя основная роль в генерации кода отведена Nitro Assembler от Apple, что позволит использовать преимущества обеих технологий.
«Причина, по которой нам пришлось приступить к разработке JägerMonkey, заключается в том, что TraceMonkey показывает высокое быстродействие лишь в том случае, если код поддается трассировке. Если же трассировку выполнить невозможно, мы оказываемся привязанными к интерпретатору, и быстродействие падает. Применяемый в JägerMonkey динамический метод изначально отличается высокой скоростью, а трассировка будет лишь увеличивать ее при выполнении соответствующего кода,» – говорит один из разработчиков нового движка Дэвид Манделин (David Mandelin).
В настоящее время проект JägerMonkey находится на ранней стадии разработки, и до его публичной демонстрации пока далеко. Желающие взглянуть на код могут скачать его из репозитория котроля версий, а информация о ходе разработки движка будет появляться на wiki-странице на сайте Mozilla.