Mozilla заимствует из WebKit, чтобы быстро модернизировать обработчик JavaScript

12 Марта 2010
Движок (интерпретатор) TraceMonkey по обработке JavaScript для Mozilla, впервые представленный в 2008 году, обеспечивал потрясающую производительность этого браузера. Однако после этого Mozilla TraceMonkey JavaScript почти не развивался, поэтому в настоящий момент Firefox отстает по этому параметру и от Apple Safari, и от Google Chrome, и от Opera

Движок (интерпретатор) TraceMonkey по обработке JavaScript для Mozilla, впервые представленный в 2008 году, обеспечивал потрясающую производительность этого браузера. Это достигалось возможностью быстрой компиляции JavaScript в машинный код, что существенно ускоряло выполнение инструкций JavaScript. Однако после этого движок Mozilla TraceMonkey JavaScript почти не развивался, поэтому в настоящий момент Firefox отстает по этому параметру и от Apple Safari, и от Google Chrome, и от Opera.

Поэтому с целью возвращения Firefox на ведущие позиции по данному вопросу в Mozilla Foundation было принято решение по созданию нового скриптового интерпретатора, который называется JägerMonkey. Очевидно, что разработчики решили не нарушать традиции в наименовании движка, так как предыдущие варианты назывались SpiderMonkey и ActionMonkey. Но наиболее поразительным является решение не модернизировать существующий движок, а заимствовать некоторые части из WebKit Apple, в первую очередь те, что отвечают за обработку скомпилированных инструкций JavaScript машинный код.

Сегодняшний движок JavaScript использует NanoJIT (Nano Just-In-Time) как свой нативный генератор кода. Новый движок JägerMonkey будет продолжать использовать NanoJIT для обработки некоторых вариантов кода, но главным обработчиком станет основой Nitro Assembler из движка WebKit Apple, позволяющий в некоторых случаях делать это гораздо более эффективно. Сочетание этих технологий, по утверждению Mozilla, позволит сделать самый лучший обработчик JavaScript из представленных на рынке.

Ситуацию пояснил Дэвид Мэнделин (David Mandelin), один из создателей нового движка: "имеющийся интерпретатор очень быстр для кода, который хорошо выполняется пошагово (трассируется). Если же код не очень хорошо выполняется пошагово, происходит замедление с его интерпретацией. Разрабатываемый JägerMonkey JIT обеспечит более высокую базовую производительность и будет позволять быстро интерпретировать и оптимизировать код, чтобы ускорить его исполнение".

Необходимо отметить, что Adobe (ранее эта разработка принадлежала Macromedia) и Mozilla уже разрабатывали совместный проект под лицензией открытого программного обеспечения Tamarin для обработки ECMA Script 4 (язык программирования, используемый в качестве основы для построения других скриптовых языков, включая JavaScript, стандартизирован в спецификации ECMA-262), однако он был отменен в силу ряда причин.

В настоящее время проект JägerMonkey находится на раннем этапе реализации и еще не готов к демонстрации широкой общественности разработчиков и пользователей. Однако все, кто хочет посмотреть на исходный код, могут это сделать, загрузив его из репозитариев Mozilla . Предполагается, что принятые меры позволят FireFox более эффективно конкурировать с другими участниками рынка браузеров.

Источники: arstechnica.com, ru.wikipedia.org, www.mozilla.org, wiki.mozilla., hg.mozilla.org

Короткая ссылка на новость: http://un-ltd.ru/~3YkGu