The OpenNET Project / Index page

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

Новые оптимизации в Firefox сократили разрыв в производительности JavaScript и компилируемых языков

20.12.2013 13:26

Разработчики Mozilla сообщили о реализации в JavaScript-движке SpiderMonkey новой оптимизации операций с плавающей запятой (float32), которая позволила достигнуть нового уровня производительности web-приложений, использующих подмножество Asm.js. Тестирование производительности показало, что выполняемое в новой сборке Firefox JavaScript-приложение выполняется примерно в 1.5 раза медленнее, чем скомпилированная в машинный код реализация того же алгоритма на языке Си. До внесения оптимизации наблюдалось расхождение производительности в два раза.

Ускорение наблюдается и при выполнении обычного JavaScript-кода, особенно использующего специализированные вызовы Math.fround(), поддержка которых будет добавлена в Firefox 26. Тем не менее, наибольший эффект достигается при применении нового типа float32 в Asm.js, низкоуровневом подмножестве языка JavaScript со строгой типизацией, которое полностью совместимо с обычным JavaScript и может выполняться в любых браузерах. Если браузер не поддерживает Asm.js, то код выполняется как обычный JavaScript, а если поддерживает - включается дополнительный оптимизирующий модуль, учитывающий добавленные в код аннотации. Наличие информации о типах позволяет использовать не только JIT, но и предварительную AOT-компиляцию, выполняемую для всего кода до начала его выполнения и генерирующую более простой и эффективный машинный код. При этом, в отличие от JIT-компиляции, Asm.js обеспечивает предсказуемую производительность и не зависит от сборщика мусора.

В настоящее время Asm.js используется в web-приложениях, автоматически преобразованных в JavaScript с языков C/C++ при помощи таких инструментов, как Emscripten и Mandreel. Для более эффективного использования новых оптимизаций в компилятор Emscripten уже добавлена логика, направленная на более активное использование типа float32 вместо менее эффективного типа float64. При этом оптимизации пока не включены по умолчанию в Emscripten, так как ещё не решены некоторые сопутствующие проблемы, такие как увеличение размера итоговой программы и замедление в некоторых специфичных ситуациях.

Примечательно, что по тестам разработчиков JavaScript-код, непосредственно манипулирующий 32-разрядными вычислениями с плавающей точкой, за счёт предкомпиляции выполняется с использованием движка SpiderMonkey иногда даже быстрее, чем те же вычисления в программе, полученной в результате компиляции в GCC или Clang. Общий уровень производительности Asm.js приближается к значениям, не сильно расходящимся с показателями на которое разные нативные компиляторы отличаются между собой (например, производительность clang и gcc в тестах box2d и copy расходится почти в два раза).

  1. Главная ссылка к новости (https://hacks.mozilla.org/2013...)
  2. OpenNews: Началось ограниченное бета-тестирование Duetto, компилятора из C++ в JavaScript
  3. OpenNews: Релиз Firefox 22 с поддержкой Asm.js
  4. OpenNews: Представлен ORBX.js - сравнимый с H.264 видеокодек, реализованный целиком на JavaScript
  5. OpenNews: Представлен Portable Native Client для запуска платформонезависимых C/C++ программ в браузере
  6. OpenNews: В Firefox 22 появится Asm.js, низкоуровневое высокопроизводительное подмножество JavaScript
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: asm.js, javascript, firefox
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (89) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.4, meequz (ok), 14:33, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Сначала изобрели интерпретируемые языки, потом написали для них компиляторы, круто.
     
     
  • 2.33, Xasd (ok), 15:59, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сначала изобрели интерпретируемые языки, потом написали для них компиляторы, круто.

    компиляторы не для интерпретируемых языков же :) ...

    Emscripten -- это компилятор для компилируемого языка C/C++ в некоторое представление (Asm.Js) которое тоже не является интерпретированным языком.

     
     
  • 3.70, Аноним (-), 18:30, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >(Asm.Js) которое тоже не является интерпретированным языком.

    а чем оно является?

     
     
  • 4.92, Аноним (-), 21:13, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>(Asm.Js) которое тоже не является интерпретированным языком.
    > а чем оно является?

    Метакодом.

     
     
  • 5.99, Аноним (-), 21:17, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Метакодом.

    В воздухе повеяло метафизикой, торсионщиной и памятью воды...

     
  • 3.71, Аноним (-), 18:35, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > в некоторое представление (Asm.Js) которое тоже не является интерпретированным языком.

    Наоборот. Компилятор преобразует компилируемый язык в ту или иную форму объектного кода, который является вполне себе интерпретируемым. Правда, интерпретатор у него, как правило, аппаратный (если не считать эмуляторов).

     
     
  • 4.141, Xasd (ok), 19:29, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> в некоторое представление (Asm.Js) которое тоже не является интерпретированным языком.
    > Наоборот. Компилятор преобразует компилируемый язык в ту или иную форму объектного кода,
    > который является вполне себе интерпретируемым. Правда, интерпретатор у него, как правило,
    > аппаратный (если не считать эмуляторов).

    ну эт да. можно и так выразиться :)

     
  • 2.118, Аноним (-), 12:56, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так сначала создали себе проблемы, потом стали их героически решать. Продолжатели дела Дона Кихота мечтают о славе ничуть не меньше предшественника.

    P.S. они подозрительно зассали взять за единицу GCC, взяв вместо него за 1 тормозной и недопиленный шланг...

     
     
  • 3.148, Аноним (-), 19:59, 22/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Какая разница, как нормировать?
     
     
  • 4.150, Аноним (-), 11:31, 23/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Какая разница, как нормировать?

    Ну как какая? Слабых бить проще. Поэтому с нормальным компилером си они зарубиться зассали, ибо при нормировании относительно GCC результат будет выглядеть довольно хило. А так взяли шланг недопиленый - "во, смотрите, не так уж и сильно отстает". Маркетинговый булшит - он такой.

     

  • 1.5, pv47 (ok), 14:34, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Осталось ещё сократить разрыв в потреблении памяти.
     
     
  • 2.119, Аноним (-), 12:58, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Осталось ещё сократить разрыв в потреблении памяти.

    И перестать мухлевать! А то даже немолодой GCC 4.6 заметно обидел в бенчах шланг принятый за единицу. Кого эти жабаскриптеры ходят надуть?

     

  • 1.9, FSA (??), 14:41, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > JavaScript-приложение выполняется примерно в 1.5 раза медленнее, чем скомпилированная в машинный код реализация того же алгоритма на языке Си

    Может всё-таки при написании алгоритма логичнее использовать особенности определённого языка?

     
     
  • 2.82, Lain_13 (ok), 20:33, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Тут имеется в виду то, что берут один и тот же сорс, компилируют его в бинарник и в asm.js, а потом сравнивают время работы бинарника и полученного «скрипта».
     

  • 1.11, Аноним (-), 14:45, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    ассемблер в жабаскрипте ?
    это революционно
     
     
  • 2.13, Аноним (-), 14:54, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +6 +/
    нет, это баян.
     

  • 1.18, Аноним (-), 15:24, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это с учётом первого прогона asm.js?
     
  • 1.25, Xasd (ok), 15:33, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    то что AsmJs будут улучшать (в плане производительности) -- этого следовало ожидать.

    Nacl\PNacl становится всё менее и менее перспективным. гемороя куча при разработке web-программ, а производительность такая же как в AsmJs (кроме времени старта.. Nacl\PNacl быстрее стартует чем AsmJs). к тому же нет обратной совместимости с браузерами которые не умеют Nacl\PNacl.

    ну или Google может насильно заставить всех сесть за Nacl\PNacl , в случае если ему получится создать 90'процентную монополию с браузером Google Chrome. от этого конечно ни куда не деться :) ..

     
     
  • 2.57, Аноним (-), 17:15, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ну или Google может насильно заставить всех сесть за Nacl\PNacl , в
    > случае если ему получится создать 90'процентную монополию с браузером Google Chrome.
    > от этого конечно ни куда не деться :) ..

    Не сможет. Они удовлетворились 30% долей и начали затягивать гайки. Дальше он пойдёт по пути windows 8 - "мы решили что вам будет удобнее так", соответственно и большей доли ему не видать.

     
     
  • 3.134, Аноним (-), 16:38, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > пойдёт по пути windows 8 - "мы решили что вам будет удобнее так",

    А мозильщики с их австралопитекисом по какому пути пойдут?

     
     
  • 4.155, Аноним (-), 19:49, 24/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >А мозильщики с их австралопитекисом по какому пути пойдут?

    свободы и любви

     
  • 2.74, Crazy Alex (ok), 19:25, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю, как в NaCl, но с asm.js память вообще никак не освобождается до завершения всего поцесса. Как по мне - для приложений это полная дикость.

    И я, хоть убей, не могу понять, чему ты радуешься - тому, что успешно сделан безумный костыль?

     
     
  • 3.78, Xasd (ok), 19:59, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > память вообще никак не освобождается до завершения всего поцесса. Как по мне - для приложений это полная дикость.

    ды во многих (C/C++) программах так сделан прикладной манагер памяти:). ни чего особо плохого. это не утечка памяти, а просто способ избежать насилия над системным манагером памяти. всем нравится, ни кто не жалуется :-)..

    сделай swap-раздал побольше гибибайт, купи SSD посовременее. ну и конечно ни в коем случае НЕ используй 32-битные операционные системы у себя на компьютере (они неэффективно управляют виртуальной памятью).

    ну ты понел :-)..

     
     
  • 4.80, Vkni (ok), 20:27, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > НЕ используй 32-битные операционные системы

    Операционная система Firefox под гипервизором Windows есть только в 32-х разрядной версии. :-)

     
     
  • 5.83, Lain_13 (ok), 20:36, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тебе же внятно сказали 32-разрядными не пользоваться. Смени гипервизор. -_-
     
  • 4.84, Crazy Alex (ok), 20:36, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, понял. Называется "плевать на эффективность и деньги на ветер". Мне этот подход несколько чужд.

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

     
     
  • 5.101, Аноним (-), 21:20, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А приличный софт на плюсах использует преимущества плюсов - в том числе
    > возможность сочетать разные схемы выделения памяти. Где статика или преаллокация, где
    > пулы разной степени навороченности, где арены... Тем более, что всё это
    > давно написано и отлажено.

    Вне браузера - да. А после запихивания в браузер - еще отлаживать и отлаживать. Особенно в плане безопасности.

     
     
  • 6.107, Crazy Alex (ok), 23:29, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот в NaCl нет никаких проблем применять всё это отлаженное прямо сейчас.
     
     
  • 7.113, Аноним (-), 00:10, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вот в $SOMETHING нет никаких проблем

    Замечательный аргумент.

     
     
  • 8.128, Аноним (-), 14:46, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    В Windows нет никаких проблем В Linux нет никаких проблем В OSS нет никаких пр... текст свёрнут, показать
     
  • 4.135, Аноним (-), 16:40, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > сделай swap-раздал побольше гибибайт, купи SSD посовременее.

    ...протри его свапом и замени. Докупи еще памяти. Докупи проц помощнее. И все это чтобы запустить очередную тормозную к@к@шку от скрипткидей, которым приспичило чесать левое ухо правой пяткой.

     
  • 3.120, Аноним (-), 13:00, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Не знаю, как в NaCl,

    Там все обычно более-менее обычно. Хотя pnacl смотрится наиболее логично для веба: в вебе же разные девайсы бывают. И x86, и x86-64, и ARM, а потенциально и еще чего-нибудь. Веб не должен зависеть от 1 архитектуры проца, это платформо-нейтральная среда...

     
  • 2.133, Аноним (-), 16:37, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Nacl\PNacl становится всё менее и менее перспективным.

    Я и вижу - знакомые игроделы на него гамезу портанули. А на asm.js они клали с прибором, ибо это уже форменное web'анатство...

     

  • 1.26, Аноним (-), 15:33, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм, отличное сравнение clang и gcc.
     
     
  • 2.59, Аноним (-), 17:18, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Причём старых версий, почему-то. Хотя по моим тестам gcc с новыми версиями почему-то только замедляется.
     
     
  • 3.72, Аноним (-), 18:36, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Причём старых версий, почему-то.

    Ну так на фоне более новых компиляторов, сабжевые достижения смотрятся не так внушительно :)

    > Хотя по моим тестам gcc с новыми версиями почему-то только замедляется.

    Сам gcc может замедляться хоть на 20%, главное, чтобы собранные им программы быстрее работали.

     
  • 3.121, Аноним (-), 13:01, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > почему-то только замедляется.

    Расскажи это LTO-оптимизациям, например, которые только в новых компилерах появились.

     

  • 1.49, Аноним (-), 16:39, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Теперь на JS можно написать Кризис и Ассасина?
     
  • 1.53, Аноним (-), 17:00, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не проще сразу Си компилятор с песочницей в браузеры встроить?
     
     
  • 2.60, Аноним (-), 17:18, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Не проще сразу Си компилятор с песочницей в браузеры встроить?

    Нет.

     
  • 2.75, Crazy Alex (ok), 19:27, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Проще встроить песочницу (NaCl) - но мозилловцы легкие пути вообще не любят и невесть зачем всё пытаются писать сами - от просмотрщика PDF до этого извращенного костыля asm.js. Что за манера - игнорировать систему, в которой работаешь, и не пытаться с ней интегрироваться как можно теснее - я не понимаю.
     
     
  • 3.79, Xasd (ok), 20:26, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Что за манера - игнорировать систему,
    > в которой работаешь, и не пытаться с ней интегрироваться как можно
    > теснее - я не понимаю.

    (фраза как я понимаю в сторону PDF.js и Shumway)..

    всё это началось после того как web-браузером стали пытаться пользоваться по-не-назначению.

    вот раньше был web , и были web-странички...

    ...но потом какие-то дураки решили запускать внутри web-браузера -- анимированные ролики через плугины (SWF), и чуть-позже просматривать PDF-файлы.

    на мой скромный взгляд -- реализация PDF.js\Shumway -- это всего лишь попытка Мозилки вернуть назад всё как было -- к ситуации "используйте web-браузер для web, а не для всего-подрят" :)

     
     
  • 4.86, Lain_13 (ok), 20:41, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    А ещё их достал тот факт, что через эти славные плагины постоянно пролезает всякая дрянь в систему. Вот и решили устроить им экстерминатус. Гугл, кстати, в Хроме тоже свой просмотр PDF сделал. Разве что они таки бинарный сделали, а не на JS, и потому работает он существенно шустрее.
     
  • 4.87, Crazy Alex (ok), 20:43, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Насчет того, что браузером надо пользоваться для просмотра веб-страниц (т.е. документов), а не запуска приложений - я двумя руками за. Но вот при чем тут PDF,js и Shumway - не пойму. Наоборот - это одни из самых монструозных "браузерных приложений" получаются. В этом плане идея с плагинами, а лучше - с механизмами вроде XEmbed смотрится куда как логичнее.
     
     
  • 5.103, Xasd (ok), 22:10, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    монструозность появляется только в том случае, если ты зашёл на web-сайт, которы... текст свёрнут, показать
     
     
  • 6.109, Crazy Alex (ok), 23:39, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    К твоему сведению - если на сайте нет соответствующего контента то процесс с плагином даже не загрузится. И, соответственно, никакую тяжеловесность не создаст. Что до разрабочиков браузера и их ответственности - в том-то и дело, что это не их ответственность, а тех, кто поддерживает систему в целом, и надо по максимуму пользоваться сервисами этой системы. Иначе осталось запускать свой гипервизор и полностью всё делать самим, игнорируя то, что предоставлено операционной системой.

    Дело тут, разумеется, в другом - мозилловцы зачем-то пилят свою систему, и пытаются отдельные компоненты и решения для неё обкатывать на пользователях.

     
     
  • 7.115, angra (ok), 02:19, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > К твоему сведению - если на сайте нет соответствующего контента то процесс
    > с плагином даже не загрузится. И, соответственно, никакую тяжеловесность не создаст.

    А вот если хоть один сайт с таким контентом открыть, а потом закрыть, то процесс с плагином останется висеть.

     
     
  • 8.127, Crazy Alex (ok), 13:28, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Не замечал, обычно процесс убивается в пределах минуты Но если остаётся - вперё... текст свёрнут, показать
     
  • 7.117, Bx (ok), 12:26, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Зато js загрузится, если захочет мастер и позволит клиент, а у него нет выбора ... текст свёрнут, показать
     
  • 4.122, Аноним (-), 13:16, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Как любитель читать даташиты могу сказать что меня совершенно не прет, когда дат... текст свёрнут, показать
     
     
  • 5.132, Xasd (ok), 16:32, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    заметьте что ActiveX-элементы тоже исполняются мгновенно и без шума вентилятора... текст свёрнут, показать
     
     
  • 6.136, Аноним (-), 17:20, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Но есть у них и баги 1 Хромая безопасноть Это выполняемый код, который вообще... текст свёрнут, показать
     
     
  • 7.138, Xasd (ok), 18:18, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    1 сложный формат провоцирует на создание ошибки 2 не WEB-ориентированный ... текст свёрнут, показать
     
     
  • 8.142, Аноним (-), 13:56, 22/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    HTML и JS намного более сложные и фичастые чем какой-то несчастный PDF, так что ... текст свёрнут, показать
     
     
  • 9.145, Xasd (ok), 15:53, 22/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    прости, но я не могу сделать это для тебя -- ты же сказал что ты всё поотключал ... текст свёрнут, показать
     
     
  • 10.151, Аноним (-), 12:28, 23/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Более того - у меня получилось лучше чем у мозильщиков В дефолтной конфиге мози... текст свёрнут, показать
     
  • 7.149, Аноним (-), 20:12, 22/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А вот тут возможны варианты, спору нет. С другой стороны, я не считаю что хочу увидеть майнер *-коинов на JS вкалывающий у меня по умолчанию, равно как мне не улыбается услышать адский ор в динамики в 3 часа ночи. Поэтому у меня noscrtipt есть и для обычного JS, если уж на то пошло.

    Майнер на JS он не хочет, а майнер на PNaCl это завсегда пожалуйста.

     
     
  • 8.152, Аноним (-), 12:29, 23/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну если его самолично инсталлировать надо - пусть будет, я не против ... текст свёрнут, показать
     

     ....нить свёрнута, показать (19)

  • 1.68, Vkni (ok), 18:20, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Други, удалось ли кому-нибудь найти опции gcc/clang'а, использовавшиеся при компиляции? А-то ведь банальное -O0 замедляет код раза в пару раз по сравнению с -O2. ;-)
     
  • 1.81, iZEN (ok), 20:28, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Разверну мысли по поводу уместности Java 8482 внутри браузера идею Java изв... текст свёрнут, показать
     
     
  • 2.88, Crazy Alex (ok), 20:46, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот в таком варианте - угу, смотрится логично. Тем более, что JVM/байткод - не равно Java. Хоть скалу тащи, хоть что.

    Впрочем, (P)NaCl  с крайне остроумно придуманной гугловцами моделью безопасности мне как-то больше нравится - натив он и есть натив.

     
     
  • 3.125, Аноним (-), 13:20, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Впрочем, (P)NaCl  с крайне остроумно придуманной гугловцами моделью безопасности мне
    > как-то больше нравится - натив он и есть натив.

    Мне тоже - и ограничений на ЯП в принципе нет, в отличие от жабы, и скорость как у нативного кода практически. Зачем надо выбирать как промежуточный рантайм какую-то кривую и ограниченную блeвотину и потом долго бороться с ее свойствами там и тут? Не понимаю. Вот PNaCl смотрится в этом плане очень логичным артефактом.

     
  • 2.104, Xasd (ok), 22:25, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > * апплеты подложили бомбу замедленного действия под клиентскую Java
    > Апплеты ни дизайном, ни функционалом не вписывались никуда. Они не могли интегрироваться в рабочую среду, так как представляли собой невозможный с эстетической точки зрения концепт приложения "окно-в-окне".

    да, кстате.

    вот это действительно.

    не понимаю зачем только теперь уже Google (Chrome) пытается наступать на эти же грабли со своим (P)NaCl.

     
     
  • 3.110, Crazy Alex (ok), 23:47, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Они не встроились, потому что джава-апплеты - это, кроме тормозности, ещё и просто редкостный образец уродства - не только архитектурного, но и визуального, вот и всё. Тогда, когда они кого-то интересовали за пределами корпоратива с приличным интерфейсом в джаве, насколько я помню, вообще был полный швах.

    А в NaCl совершенно спокойно взлетит какой-нибудь E или Gtk вполне приличного вида - это если вообще этим штукам нужна будет своя отрисовка. Впрочем, я с нетерпением жду, когда в самом HTML5 люди начнут окнтролы на канвасе рисовать за полной непригодностью HTML для приложений.

     
     
  • 4.116, Xasd (ok), 04:12, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    да, была какаято новость что мол какието ребята сделали програмный карказ, в котором контролы рисовались через WebGL (Canvas)
     
  • 4.126, Аноним (-), 13:22, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А в NaCl совершенно спокойно взлетит какой-нибудь E или Gtk вполне приличного вида

    А еще там взлетит любая SDLная гамеза с весьма приличной скоростью, например.

    А на asm.js такое делать - это отдельный фееричный костылинг, а то что получится - полный ахтунг. И то что оно "работает и на браузерах без asm.js" - очень хилое утешение. Ибо кому оно надо с получившимися при этом 1.5 FPS'ами? Эстонцам? Это слишком медленно даже для них.

     
     
  • 5.137, Xasd (ok), 17:49, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А еще там взлетит любая SDLная гамеза с весьма приличной скоростью, например.

    вот только кроме игр (технология "окно-в-окне", или "брайзер-в-браузере") -- сделать что-либо полезное врядле удасться с особым комфортом :)

    > А на asm.js такое делать - это отдельный фееричный костылинг

    пожалуй это правда. "окно-в-окне"\"браузер-в-браузере" делать через Asm.Js -- сложнее.

     
     
  • 6.143, Аноним (-), 14:53, 22/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    На основе такой технологии можно делать в принципе что угодно Кастомный кодек д... текст свёрнут, показать
     
     
  • 7.147, Xasd (ok), 18:25, 22/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Кастомный кодек для видео, обсчет графики в реальном времени, или там чего еще.

    если сделаешь этот PNaCl-кодек -- чтобы он показывал видеоклип прямо внутри компонента <embed /> -- то просто навсего видео у тебя будет тормозить, при большом разрешении.

    если делать кодек для показа видеоклипа внутри <cancas /> (с применением WebGL) -- то делать на C/C++Emscripten+Asm.Js -- будет менее геморойно чем в PNaCl

     
     
  • 8.153, Аноним (-), 12:32, 23/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    С чего бы Я и заметил - знакомые игроделы в два счета портируют гамезы под хром... текст свёрнут, показать
     
  • 2.108, Аноним (-), 23:34, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Изначальная идея была такова, что Java-апплеты (приложения) загружают свой код не весь целиком, а по мере востребованности байткода. То есть приложение начинает работать ДО того, как загрузился последний в списке .class-файл. Так как не все функции в приложении востребованы пользователем, то незачем грузить неиспользуемые .class-файлы, что и было реализовано в первоначальной модели распространения апплетов.

    Если class файлы грузить по необходимости, получим целый спектр проблем в дополнение к убогости жавы, включая зависание приложения на время загрузки нужного кода и отсутствие уверенности в том что весь код загружен и можно отключиться от сети. Вы в очередной раз демонстрируете полное непонимание даже платформы которую продвигаете.

     
  • 2.123, anonymos (?), 13:17, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Изя, прекрати путать Java и JavaScript.
     

  • 1.85, Аноним (-), 20:37, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    _один_ столбик стал чуточку короче, а пафоса-то столько нагнали
     
     
  • 2.97, Аноним (-), 21:16, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > _один_ столбик стал чуточку короче, а пафоса-то столько нагнали

    А ты открой 1024 закладки - и почувствуй, что называется, разницу. :))))))))

     

  • 1.91, Int (?), 21:03, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А отзывчивость интерфейса с прокруткой как тормозила так и тормозит
     
  • 1.102, BrainFucker (ok), 21:34, 20/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Они лучше бы занялись оптимизацией той части, из-за которой браузер тормозит когда скрипты что-то модифицируют на страницах. Сложные математические операции редко где на сайтах выполняются, а свистоперделок полно.

    http://img22.imageshack.us/img22/6232/6314.png

     
     
  • 2.105, Xasd (ok), 22:29, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Они лучше бы занялись оптимизацией той части, из-за которой браузер тормозит когда
    > скрипты что-то модифицируют на страницах. Сложные математические операции редко где на
    > сайтах выполняются, а свистоперделок полно.
    > http://img22.imageshack.us/img22/6232/6314.png

    у тебя только одно ядро что ли? или это так настроен htop?

    (не, не.. я знаю что у Firefox нет хорошей многонитевости.. но просто спросил)

     
     
  • 3.106, BrainFucker (ok), 22:55, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Одно.
     
     
  • 4.139, Xasd (ok), 19:23, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    печально :(
     
     
  • 5.140, BrainFucker (ok), 19:29, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > печально :(

    Нисколько. Особой необходимости нет. Компиляцией заниматься не приходится, видео кодировать тоже. Да и вообще проц редко нагружается на 100%.

     
  • 2.111, Crazy Alex (ok), 23:49, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И что самое гадкое - никакого простого способа отследить, какая вкладка чудит, нет. Полцарства за аналог оперовского about:cpu!
     
     
  • 3.112, BrainFucker (ok), 23:53, 20/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > И что самое гадкое - никакого простого способа отследить, какая вкладка чудит, нет.

    Дык, текущая же. Если переключиться на другую, где нет свистоперделок, то грузить перестаёт. Хотя, может и не со всеми скриптами так, не помню.

     
     
  • 4.114, Crazy Alex (ok), 02:01, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, как ни странно, нет. То есть я методом тыка иногда вылавливал проблемные вкладки, но разобраться, чем они отличаются, у меня энтузиазма не хватило. ЖЖ такое творит время от времени, GMail - тоже, хоть и реже, хабр... остальное не помню. Что сволочно - проявляется  непредсказуемо.
     

  • 1.129, Аноним (-), 15:10, 21/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В настоящее время Asm.js позиционируется в качестве "ассемблера для Web"

    False.
    Это "an extraordinarily optimizable, low-level subset of JavaScript". То есть, это даже не новый язык, тем более не ассемблер.

     
     
  • 2.130, Аноним (-), 15:40, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Это "an extraordinarily optimizable, low-level subset of JavaScript". То есть, это даже не новый язык, тем более не ассемблер.

    Правильно. Поэтому вот здесь

    > в качестве "ассемблера для Web"

    стоят кавычки.

     
     
  • 3.131, Аноним (-), 15:58, 21/12/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    И что эти кавычки должны означать? Переносный смысл? В чем он тогда заключается?
     
     
  • 4.144, Аноним (-), 14:55, 22/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > И что эти кавычки должны означать? Переносный смысл? В чем он тогда
    > заключается?

    В том что гражданин сказал несколько абстрактно. На самом деле он имел даже не только ассемблер, сколько промежуточное представление программы в платформо-нейтральном виде (IR). В любом случае, JS для этого - полный торч!

     
     
  • 5.146, Xasd (ok), 16:33, 22/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    ну ок, Js в качестве IR -- плохо а Asm Js в качестве IR -- тоже плохо ведь As... текст свёрнут, показать
     
     
  • 6.154, Аноним (-), 12:35, 23/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > ну ок, Js в качестве IR -- плохо..

    Ну вот видишь, ты сам это сказал.

    > а Asm.Js в качестве IR -- тоже плохо?

    Да, это - плохо. Потому что вместо того чтобы задизайнить для задачи "вбить гвоздь" нормальный инструмент "кувалда", мозильщики начали заниматься какой-то фигней с попыткой превратить микроскоп в подобие кувалды при помощи твикинга размера тубуса и утяжеления основания.

     

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



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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