В Mozilla объявили о создании технологии, значительно увеличивающей производительность подсистемы JavaScript и Web-приложений.
Технология, получившая название TraceMonkey, как пояснил вице-президент по проектированию Mozilla Майк Шейвер, добавляет к подсистеме интерпретации JavaScript, которая называется SpiderMonkey, функции компиляции в машинный код конкретного типа процессора вместо аппаратно-независимого байт-кода.
"Новая технология стала развитием идей и кода, заложенных в проекте Tamarin Tracing", - добавил Шейвер.
Коды TraceMonkey в конце августа были помещены в общий архив исходных кодов для версии браузера Firefox 3.1. Технологию планируется реализовать в версии, которая должна выйти к концу текущего года.
"Я с большим удовольствием объявляю о выпуске TraceMonkey, существенного усовершенствования подсистемы JavaScript SpiderMonkey, использующей теперь для повышения производительности JavaScript оригинальный вариант технологии 'компиляции на лету' (Just In Time, JIT), что позволяет увеличить производительность более, чем на порядок", - заявил директор по технологиям Mozilla и один из создателей JavaScript Брендан Эйк.
"TraceMonkey приближает нас к будущему нашего проекта; в Mozilla 2 на JavaScript будет написана еще большая, чем сейчас, часть Firefox. По мере развития этой тенденции Firefox будет становиться все быстрее и безопаснее", - считает Эйк.
Впрочем, разработка проекта пока находится на ранней стадии.
"Целью TraceMonkey является вывод производительности JavaScript на новый уровень, когда от конкуренции с другими интерпретируемыми языками мы переходим к конкуренции с машинным кодом для конкретной платформы", - утверждает Шейвер.
"Есть еще ошибки, которые надо исправить, есть огромное пространство для оптимизации, но мы на полном ходу заняты работой, которую надо выполнить для включения технологии в состав Firefox 3.1, - добавил он. - Видимый эффект будет зависеть от конкретного набора тестов — на некоторых может быть большое ускорение, на некоторых небольшое, а некоторые, вероятно, покажут даже замедление. Но это последнее определенно будет проявлением ошибок, и сообщения о таких случаях через bugzilla нам очень помогут".
В настоящее время TraceMonkey поддерживает платформы x86, x86-64 и ARM, что говорит о нацеленности его создателей как на настольные, так и мобильные платформы.
"По мере роста производительности на JavaScript для работы внутри браузера будет переводиться все больше кода, который раньше считался для этого слишком медленным. А значит, на Web-приложения могут быть возложены масштабные задачи, для выполнения которых сейчас требуются специализированные модули расширения, позволяющие организовать выполнение вычислений на стороне клиента", - отметил он.
Эйк ожидает, что и другие браузеры пойдут по пути Mozilla и с помощью методов компиляции на лету преодолеют ограничения скорости, характерные для современных интерпретаторов JavaScript.