Началась работа над IonMonkey, новым JIT-компилятором JavaScript от проекта Mozilla

5 мая 2011 года

Разработчики проекта Mozilla приступили к созданию нового JIT-компилятора для увеличения скорости выполнения JavaScript в движке SpiderMonkey. Новый JIT-копилятор получил название IonMonkey и пока находится на стадии проектирования архитектуры и формирования начального прототипа. IonMonkey является третьим JIT-компилятором, создаваемым в рамках проекта Mozilla, прошлые варианты были выпущены в 2010 и 2008 годах, каждый раз значительно поднимая производительность Firefox.

Новый JIT-компилятор не станет исключением, в нем ожидается реализация передовых техник оптимизиации JavaScript, некоторые из которых уже представлены в конкурирующем JIT-компиляторе Crankshaft проекта V8. JavaScript является языком с динамической типизацией, с одной стороны это предоставляет большую гибкость для разработчиков (по сути объекты в JavaScript можно рассматривать как хэш-таблицу), но с другой стороны создает трудности при создании JIT-компиляторов. Так как невозможно заранее определить какой тип данных будет содержаться в переменной, невозможно сопоставить данную переменную с определенными фиксированными инструкциями, рассматривающими эту переменную, например, как строку или число. В IonMonkey планируется провести большую работу по обеспечению более организованной работы со структурами данных и более точному учету типов. Из платформ, генерация кода для которых появится в IonMonkey, отмечаются i386, x86_64, и ARM.

В рамках проекта IonMonkey разработчики Mozilla планируют не просто создать новую технику JIT-компиляции, но и учесть ранее созданные наработки, превратив IonMonkey в единую консолидированную платформу, поддерживающую различные техники оптимизации и задействующую каждую из них в зависимости от текущей ситуации. В отличии от системы Crankshaft, разработанной для V8, в IonMonkey ожидается реализация системы вероятностной оценки типов (проект Type Inference), в рамках которой предложен гибридный метод статического и динамического анализа, позволяющий точно сопоставить типы для каждой переменой и свойства JavaScript-программы. Подобный подход даст возможность избавиться от выполнения всех дополнительных проверок в процессе работы JavaScript-программы и реализовать некоторые виды оптимизации, которые при другом подходе оказались бы невозможными.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Началась работа над IonMonkey, новым JIT-компилятором JavaScript от проекта Mozilla», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.