The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

14.02.2014 11:54  В Chrome появилась поддержка фоновой компиляции JavaScript

Разработчики из компании Google сообщили о добавлении в JavaScript-движок V8 поддержки фоновой компиляции JavaScript, которая позволит избежать появления задержек в процессе выполнения web-приложений и положительно повлияет на отзывчивость. Представленное улучшение уже доступно для тестирования в бета-сборках Chrome, Chrome для Android и Chromium.

В V8 применяется техника адаптивной JIT-компиляции. Так как некоторые виды оптимизации требуют накопления статистики и расходуют значительные процессорные ресурсы, глубокая оптимизация выполняется только для наиболее востребованных и часто выполняемых блоков кода (например, математические операции, цикличная обработка данных, рекурсивные вызовы). Редко используемый код и код, который только начал выполняться, компилируется по упрощённой схеме. До сих пор основной проблемой подобного подхода было то, что стадия оптимизирующей компиляции инициировалось в непредсказуемый для выполняемого web-приложения момент и приводила к возникновению задержек из-за приостановки выполнения кода до завершения компиляции очередного блока. В некоторых ситуациях задержки были вполне ощутимы и достигали 600 мс.

В новой версии V8 фаза глубокой оптимизирующей компиляции осуществляется в параллельном потоке, без прерывания процесса выполнения JavaScript-кода. Во время компиляции код продолжает выполняться с использованием базовых оптимизаций, а после готовности более эффективного кода, переключается на полностью оптимизированный вариант. Исключение задержек положительно повлияло на производительность сложных ресурсоёмких JavaScript-проектов. Например, показатели прохождения теста Mandreel, оценивающего скорость выполнения JavaScript-порта движка симуляции физических процессов Bullet, улучшились на 27%.



  1. Главная ссылка к новости (http://blog.chromium.org/2014/...)
  2. OpenNews: В движке V8 появилась новая подсистема JIT-компиляции JavaScript-кода
  3. OpenNews: Открыт код Duetto, системы для запуска в web-браузере проектов на языке C++
  4. OpenNews: Firefox 18 перейдёт на IonMonkey, JIT-компилятор нового поколения
  5. OpenNews: Взгляд на производительность JavaScript от одного из разработчиков Java
  6. OpenNews: Новые оптимизации в Firefox сократили разрыв в производительности JavaScript и компилируемых языков
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: javascript, v8, chrome, jit
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, MPEG LA (?), 12:05, 14/02/2014 [ответить] [показать ветку] [···]    [к модератору]
  • –4 +/
    когда они asm.js добавят?
     
     
  • 2.3, Аноним (-), 12:15, 14/02/2014 [^] [ответить]     [к модератору]
  • +1 +/
    Оно у них и так работает asm js на том же V8 будет выполняться быстрее иного жа... весь текст скрыт [показать]
     
     
  • 3.8, Lain_13 (ok), 14:29, 14/02/2014 [^] [ответить]    [к модератору]  
  • +/
    А на сколько он при этом близок к бинарнику, собранному из того же кода, из которого генерировали asm.js-код?
     
     
  • 4.41, inferrna (ok), 16:15, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    По потреблению памяти он всё так же далёк, смею вас уверить.
     
     
  • 5.43, Lain_13 (ok), 21:02, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Может тему менять не будем? Тут говорилось о скорости. На занимаемую память лично мне плевать в данном случае.
     
  • 3.30, Аноним (-), 20:46, 14/02/2014 [^] [ответить]     [к модератору]  
  • –2 +/
    К сожалению, проблему обычного asm решить так и не удалось Когда кул-хацкер нач... весь текст скрыт [показать]
     
  • 3.33, MPEG LA (?), 00:10, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    а мужики-то и не знали!
    они внесли некие оптимизации, и таки да, скорость выполнения увеличилась, но "use asm" не запилили: https://code.google.com/p/v8/issues/detail?id=2599
     
  • 3.45, анон (?), 15:02, 16/02/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    несёшь фигню с каких это пор вот это function sum a, b a a 124 0 ... весь текст скрыт [показать]
     
     
  • 4.46, arisu (ok), 15:08, 16/02/2014 [^] [ответить]    [к модератору]  
  • +/
    да одинаково примерно будет: трассировщик поможет.
     
     
  • 5.48, анон (?), 23:34, 18/02/2014 [^] [ответить]    [к модератору]  
  • +/
    почитайте про "|0" и вообще про побитовые операторы в JS, сударь. Вкратце - они супер медленные, из-за смены типа.

    http://es5.javascript.ru/x11.html#x11.10

     
     
  • 6.49, arisu (ok), 06:28, 19/02/2014 [^] [ответить]    [к модератору]  
  • +/
    а я советую прочитать про то, что такое tracing compilers, и почему здесь почти наверняка на входе будут целые числа.
     
  • 2.47, Сеня (??), 22:06, 18/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > когда они asm.js добавят?

    давно уже!

     
  • 1.6, ip1981 (ok), 13:04, 14/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Единственный движок, без проблем работающий на солярке :-)
     
  • 1.7, A.Stahl (ok), 14:29, 14/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    >фоновой компиляции JavaScript

    Сколько возни ради этого JS. Странный это язык -- вроде и язык как язык, но никогда не видел, чтобы JS использовался для чего-то кроме свистелок.
    Ну перделки ещё, говорят, пишут на нём.

     
     
  • 2.9, Anonymus (?), 14:32, 14/02/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    миллионы мух не могут ошибаться
     
     
  • 3.17, Аноним (-), 16:38, 14/02/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Всегда было интересно, с какой целью аноны при любом удобном случае употребляют ... весь текст скрыт [показать]
     
  • 2.10, Аноним (-), 14:39, 14/02/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    Отучаемся говорить за всех То, чего не знаешь лично ты - не тождественно тому, ... весь текст скрыт [показать]
     
     
  • 3.13, A.Stahl (ok), 15:14, 14/02/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    >Отучаемся говорить за всех.

    Учимся читать. Где это я говорил "за всех"? :)

     
  • 2.14, Аноным (ok), 15:39, 14/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Да с ним уже ничего не сделать, кто хотел, тот давно разобрался, много всего написано... Понятно в общем. Так же Гугл пилит Дарт и вообще полно всяких фреймворков, библиотек и препроцессоров.
     
  • 2.16, тоже Аноним (ok), 16:09, 14/02/2014 [^] [ответить]     [к модератору]  
  • +/
    То есть, например, банальный калькулятор цены для клиента вам на сайтах никогда ... весь текст скрыт [показать]
     
     
  • 3.18, A.Stahl (ok), 16:49, 14/02/2014 [^] [ответить]     [к модератору]  
  • +4 +/
    Да, это свистелки Я где-то сказал, что свистелки это плохо Вы, кстати, не пер... весь текст скрыт [показать]
     
     
  • 4.24, тоже Аноним (ok), 18:28, 14/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Кто же вас правильно поймет, когда вы так вот буквально пишете - что код пользо... весь текст скрыт [показать]
     
  • 4.29, Аноним (-), 20:40, 14/02/2014 [^] [ответить]     [к модератору]  
  • +/
    JS язык общего назначения Тот факт что практически все операционные системы, по... весь текст скрыт [показать]
     
     
  • 5.37, arisu (ok), 03:35, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > JS язык общего назначения. Тот факт что практически все операционные системы, появившиеся
    > в последнее вермя, используют именно его ни о чём не говорит?

    это какие? перечисляем, не стесняемся.

     
  • 3.23, тот ещё Анонимус (?), 17:49, 14/02/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    > Попробуйте хотя бы отключить JS на Опеннете. Вы же не цените свистелки
    > и перделки? Вперед!

    Уже давно без JS на Опеннете. И что?

     
  • 3.28, Анончик (?), 20:33, 14/02/2014 [^] [ответить]    [к модератору]  
  • +/
    отключил, брат жив.
    что дальше?
     
  • 3.36, arisu (ok), 03:35, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Попробуйте хотя бы отключить JS на Опеннете.

    никогда и не включал. а что должно было произойти?

     
  • 2.20, кевин (?), 17:40, 14/02/2014 [^] [ответить]    [к модератору]  
  • +/
    я вижу вашу лень даже через слои напусконого сарказмического жира, хорошая попытка.
     
  • 2.34, Аноним (-), 01:20, 15/02/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    Включил недавно JS в elinks. Брат жив.
     
  • 2.38, arisu (ok), 03:37, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Сколько возни ради этого JS. Странный это язык — вроде и язык
    > как язык, но никогда не видел, чтобы JS использовался для чего-то
    > кроме свистелок.
    > Ну перделки ещё, говорят, пишут на нём.

    мода-с. «мы хотим уеб-приложения! чтобы было веселее — мы выберем для этого как можно менее подходящие инструменты, а потом будем героически решать возникшие проблемы!»

     
     
  • 3.39, тоже Аноним (ok), 11:50, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Очень хотелось бы услышать о более подходящих инструментах для веб-приложений.
     
     
  • 4.40, arisu (ok), 11:54, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Очень хотелось бы услышать о более подходящих инструментах для веб-приложений.

    как я уже говорил, суть такова(tm), что «уеб-приложения» не нужны.

    санки, впрочем, это всё предвидели и даже сделали когда-то java webstart, но оно оказалось немного преждевременно. однако сама идея была в миллион миллиардов раз лучше, чем то, что творят сейчас.

     
  • 1.15, krasnodar2000 (?), 15:51, 14/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    А реально вообще дождаться такого, что браузер тянет с сервера байт-код,
    а ты у же с какого хочешь языка получаешь этот байткод?
     
     
  • 2.21, кевин (?), 17:42, 14/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > А реально вообще дождаться такого, что браузер тянет с сервера байт-код,
    > а ты у же с какого хочешь языка получаешь этот байткод?

    naCL почти. у LLVM вроде была похожая технология в академических проектах.

     
     
  • 3.27, krasnodar2000 (?), 20:06, 14/02/2014 [^] [ответить]    [к модератору]  
  • +/
    NaCL не то, это же нативный код
     
  • 3.32, Аноним (-), 22:25, 14/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Pnacl более подходит под вышеперечисленные требования.
     
     
  • 4.42, krasnodar2000 (?), 19:33, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    >Pnacl

    о, это вроде оно

     
  • 2.31, Аноним (-), 20:48, 14/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Java не?
     
  • 2.35, Аноним (-), 01:21, 15/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Так на сегодняшний день JavsScript и есть этот байткод.

    А пишут люди на ClojureScript, CoffeeScript и еще сотне разных языков.

     
  • 1.19, Аноним (-), 17:05, 14/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Офигеть. А в мозилле что-то подобное будет?
     
     
  • 2.22, кевин (?), 17:42, 14/02/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    > Офигеть. А в мозилле что-то подобное будет?

    напиши будет.

     
     
  • 3.25, Аноним (-), 18:30, 14/02/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    Это без всяких приколов - самый реалистичный вариант. Ничем серьёзным мазила для своего браузера не занимается, зато занимается свистелками всерьёз.
     
  • 2.26, Аноним (-), 19:31, 14/02/2014 [^] [ответить]    [к модератору]  
  • +2 +/
    http://bugzil.la/813559
    > Target Milestone: mozilla20

    С 20 версии уже есть и работает.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor