ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Мировые новости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Для JavaScript-движка Firefox создается новый JIT-компилятор
  #1  
Старый 28.02.2010, 13:15
Suicide
Moderator - Level 7
Регистрация: 24.04.2009
Сообщений: 1,730
Провел на форуме:
30140275

Репутация: 3256


По умолчанию Для JavaScript-движка Firefox создается новый JIT-компилятор

В рамках проекта JägerMonkey (https://wiki.mozilla.org/JaegerMonkey) разработчики Mozilla ведут работу по интеграции в JavaScript движок SpiderMonkey легкого контекстно-ориентированного многопоточного JIT-компилятора. Для формирования на лету машинного кода в JägerMonkey решено задействовать открытый ассемблер Nitro JavaScript JIT, созданный компанией Apple для WebKit. Nitro распространяется под совместимой с Firefox лицензией и написан на языке C++, что упрощает процесс его интеграции. Код Nitro уже адаптирован для запуска с использованием системы сборки и набором библиотек Mozilla.

Вторым ключевым компонентом JägerMonkey является работающий на более высоком уровне JIT-компилятор методов, созданием которого занимаются разработчики Mozilla. В будущем, после проведения первичной стадии тестирования, работа будет сосредоточена на интеграции JägerMonkey с JIT-подсистемой движка TraceMonkey. По средним оценкам, в текущем виде JIT-компилятор JägerMonkey позволяет увеличить производительность выполнения JavaScript на 18%, после доработки планируется увеличить производительность еще на 10%. Особенно новый JIT эффективен для оптимизации регулярных выражений.

Работа JIT-компилятора в движке TraceMonkey, который уже используется в последних версиях Firefox, построена на идее "tracing"-оптимизации, суть которой в сохранении плана выполнения скрипта с последующим использованием бинарного кода при выполнении подобных блоков. При этом происходит преобразование циклов и сложных методов в вид линейного потока инструкций. Подобный метод позволяет значительно ускорить выполнение определенных операций, например показывает девятикратный прирост производительности в тесте math-cordic из пакета SunSpider. При работе реального кода, специально не оптимизированного для развертывания в линейное представление инструкций, эффективность "tracing"-оптимизации значительно снижается. Например, тест "date-format-tofte" в котром есть вызов "eval" работает быстрее всего на 5%.

Некоторые разработчики сравнивают TraceMonkey с ракетным бустером, позволяющим обеспечить значительное ускорение, но в коротком промежутке времени. Для скриптов с большим числом разветвлений, использованием "eval" и комбинированием разных типов (для каждой комбинации типов и каждого ветвления создается свой трассировочный план выполнения, если комбинаций 1000, то и планов будет 1000), эффективность TraceMonkey оставляет желать лучшего. Предлагаемый к реализации новый JIT-компилятор менее эффективен для некоторых ситуаций, но позволяет ускорить выполнение всех программ на JavaScript, не требуя специального оформления кода. При комбинировании обеих подходов в одном JavaScript-движке можно достичь действительно значительного ускорения при выполнении любых скриптов.

28.02.2010
http://www.opennet.ru/opennews/art.shtml?num=25608

http://blog.mozilla.com/dmandelin/2010/02/26/starting-jagermonkey/
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
История Windows (с картинками) GrinGoO Статьи 19 17.04.2010 13:01
Программирование графических приложения для Linux. Kerny Авторские статьи 1 11.03.2010 11:38
Хакер и закон! SladerNon Болталка 17 12.11.2009 09:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ