Firefox 18 перейдёт на IonMonkey, JIT-компилятор нового поколения

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 12 Sep 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,373
    Likes Received:
    6,619
    Reputations:
    693
    Firefox 18 перейдёт на IonMonkey, JIT-компилятор нового поколения


    Разработчики Mozilla сообщили о миграции JavaScript-движка экспериментальной ветки Firefox на IonMonkey, JIT-компилятор следующего поколения, который позволит значительно повысить производительность JavaScript приложений за счёт использования нового метода JIT-компиляции и передовых техник оптимизации. Первым релизом, перешедшим на IonMonkey, станет Firefox 18, выход которого запланирован на начало января.

    Одним из ключевых новшеств IonMonkey является система вероятностной оценки типов, в рамках которой предложен гибридный метод статического и динамического анализа, позволяющий точно сопоставить типы для каждой переменной и каждого свойства JavaScript-программы. Напомним, что JavaScript является языком с динамической типизацией, с одной стороны это предоставляет большую гибкость для разработчиков, но с другой стороны создает трудности при создании JIT-компиляторов. Так как невозможно заранее определить какой тип данных будет содержаться в переменной, возникают трудности при сопоставлении переменной с определенными фиксированными инструкциями, рассматривающими эту переменную, например, как строку или число. IonMonkey сделал существенный шаг вперёд в плане решения данной проблемы и позволил избавиться от выполнения большого числа дополнительных проверок в процессе работы JavaScript-программы.

    Другим важным улучшением является использование адаптивных методов выбора той или иной техники оптимизации для выполняемого JavaSvript-кода. Если JIT-компиляторы первых двух поколений (TraceMonkey и JägerMonkey) поддерживали только прямую однонаправленную трансляцию JavaScript в машинные инструкции, то IonMonkey дополнительно снабжён средствами для обратной связи, позволяющими оценить эффективность результата выполнения сгенерированных инструкций и при необходимости внести корректировки и оптимизации, учитывающие особенности выполняемого JavaScript-кода.

    Архитектура IonMonkey разделена на три компонента: трансляция JavaScript в промежуточное представление (IR), применение различных алгоритмов к IR и трансляция финального IR в машинный код. Подобное разделение значительное увеличило гибкость работы JIT-компилятора и упростила сопровождение кода и его доработку. Например, добавление новых алгоритмов оптимизации теперь напоминает написание плагинов.

    Среди других улучшений можно отметить: задействование техники LICM (Loop-Invariant Code Motion) для выноса инструкций за пределы циклов; поддержка метода GVN (Global Value Numbering) для ликвидации избыточного кода; реализация линейной схемы распределения регистров LSRA (Linear Scan Register Allocation), применяемой также в таких проектах, как HotSpot JVM и LLVM; поддержка DCE (Dead Code Elimination) для удаления неиспользуемого кода; новый анализатор границ, позволяющий обойтись без лишних проверок выхода за границы буфера. В настоящее время IonMonkey поддерживает генерацию кода для архитектур i386, x86_64, и ARM.

    Итогом проделанной работы стало значительное повышение производительности выполнения кода JavaScript. При выполнении тестового комплекта Kraken Firefox 18 с IonMonkey показал прирост производительности на 26%, по сравнению с Firefox 15 и тестовой версией Firefox 17.

    [​IMG]

    В тесте V8 benchmark Firefox 18 опередил Firefox 17 на 7%, а текущий релиз Firefox 15 на 20%.

    [​IMG]

    12.09.2012
    http://www.opennet.ru/opennews/art.shtml?num=34814
    https://blog.mozilla.org/javascript/2012/09/12/ionmonkey-in-firefox-18/​
     
  2. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    Отличненько!
     
    _________________________
  3. OxoTnik

    OxoTnik На мышей

    Joined:
    10 Jun 2011
    Messages:
    939
    Likes Received:
    524
    Reputations:
    173
    Скорость это хорошо, но если он так же будет оперативку и проц жрать как сейчас, переиду на оперу.
    Как касперский стал ей богу.
     
  4. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    OxoTnik меня даже сейчас устраивает, 47 открытых вкладок -
    [​IMG]

    Зато возможностей гораздо больше, даже взяв тот-же хром.
     
    _________________________
  5. OxoTnik

    OxoTnik На мышей

    Joined:
    10 Jun 2011
    Messages:
    939
    Likes Received:
    524
    Reputations:
    173
    VY_CMa вообще я не спрашивал твоего мнения, я сказал что он жрёт больше памяти чем опера. Поставь на слабую машинку и посмотри на чём удобнее.
     
  6. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    OxoTnik, а я не навязываю никому своего мнения, лишь говорю что для меня это почти идеальный браузер.
     
    _________________________