The OpenNET Project / Index page

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

Для Firefox представлен API для задействования в web-приложениях инструкций SIMD

10.09.2014 11:45

В ночных сборках Firefox добавлена реализация API JS-SIMD (Single Instruction, Multiple Data), позволяющего организовать распараллеливание выполнения операций над данными c использованием инструкций SIMD. API JS-SIMD пока доступен только для web-приложений, использующих расширение Asm.js с реализацией низкоуровневого подмножества языка JavaScript со строгой типизацией. Реализация API JS-SIMD не привязана к специфичным реализациям SIMD и может использовать как SIMD-инструкции Intel, так и ARM.

В дальнейшем планируется предоставить возможность использования API JS-SIMD не только для Asm.js, но и для обычного JavaScript-кода. Кроме того ведётся работа по интеграции поддержки JS-SIMD в компилятор Emscripten, что позволит транслировать в JavaScript применяемые в программах на C/C++ механизмы SIMD. Для наглядной оценки различий в производительности выполнения использующих интенсивные вычисления web-приложений, с задействованием SIMD и без него, подготовлена демонстрационная страница. Например, при построении множества Мандельброта с использованием JS-SIMD наблюдается четырёхкратное увеличение производительности. В некоторых других тестах скорость возрастает до 10 раз.

  1. Главная ссылка к новости (http://sunfishcode.github.io/b...)
  2. OpenNews: Выход Firefox 33-beta и Firefox 34-aurora
  3. OpenNews: Релиз Firefox 32
  4. OpenNews: В ночных сборках Firefox добавлена стартовая страница с рекламой
  5. OpenNews: В Firefox 36 ожидается переход на многопроцессную архитектуру
  6. OpenNews: GTK3-порт Firefox успешно запущен в окружении Wayland
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: firefox, simd
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (108) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 11:57, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    Пора делать свой "интернет" с поэтесс^W^W БЕЗ жаваскрипта:)
    А то скоро код для обеспечения эффективной работы жаваскрипта будет тормозить сильнее, чем сам жаваскрипт:)
     
     
  • 2.3, бедный буратино (ok), 12:07, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    web 0.5, о котором я мечтал, так и не случился...

    пришло время для web 1.44, может быть, он станет удачнее :)

     
     
  • 3.4, renta (??), 12:23, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >web 0.5

    Это случаем не гипертекстовый фидонет?

     
     
  • 4.99, putin_huylo (?), 22:35, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>web 0.5
    > Это случаем не гипертекстовый фидонет?

    Web 2:5020

     
  • 3.5, A.Stahl (ok), 12:31, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >web 1.44

    Давай уж пятидюймовый 1.2. Так теплее и "ламповей":)

     
     
  • 4.12, Аноним (-), 13:41, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Давай уж пятидюймовый 1.2. Так теплее и "ламповей":)

    А чего не восьмидюймовый?

     
     
  • 5.14, A.Stahl (ok), 13:50, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я с ними не работал. Даже не видел вживую никогда.
     
     
  • 6.29, Аноним (-), 17:08, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    лама =)
     
  • 6.40, Аноним (-), 18:44, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Я с ними не работал. Даже не видел вживую никогда.

    Такие же как 5", только крупнее.

     
  • 4.62, Аноним (-), 22:09, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Web 6 Plus
     
  • 3.107, XoRe (ok), 23:54, 13/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    web 0.640 хватит всем!
     
  • 2.11, Аноним (-), 13:40, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >  Пора делать свой "интернет" с поэтесс^W^W БЕЗ жаваскрипта:)

    Гугл сделал - pnacl называется. А мозилла продолжает удалять гланды через ж...у автогеном, пытаясь получать доступ к низкоуровневым фичам из высокоуровневого ЯП. Что, разумеется, требует феерических костылей и выглядит диковато.

     
     
  • 3.19, Xasd (ok), 15:21, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > то, разумеется, требует феерических костылей и выглядит диковато.

    использование КОДА (js) для выполнения КОДА (asm.js) -- это на много МЕНЕЕ диковато выглядет, ...

    ..., чем использование ВИЗУАЛЬНОГО объекта < object ... >...</object> для выполнения кода.

    так что nacl\pnacl -- на много более черезжопная идея чем asm.js ..

    это если говорить субъективо.

    а если говорить объективно -- то суть одна и таже (и у nacl\pnacl и у emscripten->asm.js) но при этом у nacl\pnacl нет обратной совместимности для запуска кода в браузерах без nacl\pnacl.

     
     
  • 4.32, Crazy Alex (ok), 17:25, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А с какой стати object обязан быть визуальным? Только потому, что так раньше было? Кроме того, насколько я понимаю, даже с JS для реализации нормальной изоляции кода нужно использовать iframe, который уж точно визуальный. Иначе скрипт гарантированно имеет доступ ко всему, что есть на странице.

    Ну и в реализации разница принципиальна - для NaCl имеем вполне классическую компиляцию, для asm.js - набор навороченных техник (костылей, в общем-то), количество которых всё растёт. Что проще релизуется и заведомо имеет меньше ошибок - очевидно.

     
     
  • 5.45, Аноним (-), 19:18, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А с какой стати object обязан быть визуальным?

    Лучше пусть скажет - какие такие текстовые данные он намерен дробить с использованием SIMD :).

    А чтобы мальчикам вебдванольчикам стало совсем хорошо - посмотрите на то как SPDY устроен.

     
     
  • 6.65, Xasd (ok), 23:23, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Лучше пусть скажет - какие такие текстовые данные он намерен дробить с использованием SIMD :).

    ты хоть в курсе того что asm.js -- ВООБЩЕ НЕ УМЕЕТ работать с текстовыми строками?

    asm.js может работать только с бинарными данными (int32 , float , double , ... и их массивы).

    там ВООБЩЕ нет переменных строкового типа!

    это тебе не Javascript и не Perl .

     
     
  • 7.76, Аноним (-), 04:23, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тогда к чему весь этот бзик по тексту Представлять явно бинарные объекты как те... текст свёрнут, показать
     
     
  • 8.109, Xasd (ok), 20:42, 18/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ды не надо это по 10 раз повторять b да -- это не оптимально b мы все тебя... текст свёрнут, показать
     
  • 5.64, Xasd (ok), 22:37, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    пургу не неси скрипт как раз и нужен чтобы ИМЕТЬ доступ ко всему что есть на ст... текст свёрнут, показать
     
     
  • 6.71, Crazy Alex (ok), 03:45, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это надо посмотреть, кто здесь несет пургу Ладно, я понимаю, что веб историческ... текст свёрнут, показать
     
  • 4.44, Аноним (-), 19:16, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    JS никогда не делался для быстрого и оптимального выполнения И тем более SIMD ... текст свёрнут, показать
     
  • 3.70, Аноним (-), 00:15, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    pnacl - проприетарное непортабельное yблюдство. А так работают оно с js почти одинаково - что там портабельное представление транслируется в нитивный код, что здесь, только в одном случае llvm bitcode, в другом - js. Второе хотя бы открыть и посмотреть можно.
     
     
  • 4.77, Аноним (-), 04:31, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то там есть исходники, etc и даже под OSI-approved лицензиями насколько я... текст свёрнут, показать
     
  • 2.22, Аноним (-), 15:55, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Школьник, где ты видел тормоза JavaScript? Чем он медленнее чем тот же Python или PHP? Про NodeJS держащий миллион соединений без заметной нагрузки рассказать? Не путай тормоза JavaScript и реализации DOM в браузерах.
     
     
  • 3.24, анон (?), 16:04, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ох, лол. Вот это у тебя бомбануло.
     
  • 3.46, Аноним (-), 19:20, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Python или PHP?

    Чемпионат тормозов? :)

    > Про NodeJS держащий миллион соединений

    Только вот нжинкс любимый хайлоадом - почему-то на чистом си.

     
     
  • 4.51, Michael Shigorin (ok), 20:09, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Про NodeJS держащий миллион соединений
    > Только вот нжинкс любимый хайлоадом - почему-то на чистом си.

    Потому как ему не только держать лежачего соединения, а и обрабатывать бегучего.

     
     
  • 5.57, Аноним (-), 21:37, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому как ему не только держать лежачего соединения, а и обрабатывать бегучего.

    Да даже лежачих - компактность структур данных и отсутствие 100500 проверок при работе с базовыми типами все-таки позволяют при прочих равных удержать больше. И протолкать больше.

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

     
  • 4.56, Аноним (-), 21:28, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Только вот нжинкс любимый хайлоадом - почему-то на чистом си.

    Железобетонная логика.

    Может потому что он появился задолго до NodeJS, а также потому что ему требуются низкоуровневые операции, чего не каждой программе на JS нужно?

     
     
  • 5.58, Аноним (-), 21:39, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Может потому что он появился задолго до NodeJS, а также потому что
    > ему требуются низкоуровневые операции, чего не каждой программе на JS нужно?

    Ну если вы про скорость - вот побейте его по скорости и количеству соединений. А то пинать всяких слоупоков типа питона - ну это конечно да, легко отнять у детки конфетку. Поди лучше отними конфетку у вон того боксера, если хочешь выглядеть крутым Уокером.

     
     
  • 6.60, Аноним (-), 22:06, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я все же напомню, что JavaScript - динамический язык со своей нишей. Говорить о его тормозах некорректно, он не медленнее других широко распространенных динамических языков. Только вот хомячки, смотря на тормоза своей Лисы, делают вывод, что тормозит именно JS (в отдельных реализациях умеющий без напряга держать миллион коннектов), а не что-то другое.
     
     
  • 7.78, Аноним (-), 04:36, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Именно И поэтому делать из JS intermediate representation - надо конкретно упас... текст свёрнут, показать
     
  • 4.105, haha (??), 13:51, 12/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Только вот нжинкс любимый хайлоадом - почему-то на чистом си.

    Сравнил мягкое с теплым.  А слабо веб-фреймфорк на чистом Си назвать, только чтобы им пользовались не полтора землекопа.  

     
  • 3.59, rshadow (ok), 22:02, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > миллион соединений

    Просто напомню что одновременных соединений может быть максимум 60к.

     
     
  • 4.61, Аноним (-), 22:08, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Не путай количество портов с соединениями.

    http://habrahabr.ru/post/123154/

     
     
  • 5.72, rshadow (ok), 03:49, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну там то они делали на облаке а не машине. Хотя конечно ip адресов можно на тачку выделить и сделать возможность в миллион коннектов.
     
     
  • 6.80, Аноним (-), 05:00, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ip адресов можно на тачку выделить и сделать возможность в миллион коннектов.

    На входящем порту можно получить более 65536 соединений. Вплоть до 65536 соединений с каждого из IP ремоты.

     
     
  • 7.92, клоун (?), 16:19, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Забей. С ним общаться всё равно что г--вно месить: сколько не меси оно вонять меньше не станет.
     
     
  • 8.93, Аноним (-), 17:12, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тебе как профессиональному гoвнoмесу виднее, конечно, с твоим микрософтом ... текст свёрнут, показать
     
     
  • 9.100, Led (ok), 01:04, 12/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Он не месит, он только потребляет его ... текст свёрнут, показать
     
  • 4.79, Аноним (-), 04:56, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Просто напомню что одновременных соединений может быть максимум 60к.

    С чего это ради? Конекция уникально идентифицируется IP1:Port1 <-> IP2:port2. Если допустить что у хоста один IP2 и он слушает на 1 порту port2, всего получается 256^6 комбинаций (4 байта IP1 + 2 байта port1 = 6 байтов которые могут меняться, у каждого 256 возможных значений). На секундочку, это 2.814749767×10¹⁴.

    Хинт: миллиард это 10⁹. Это число содержит на 5 нолей больше. Это число соответствует случаю если все возможные IP и их порты сделают соединение к нашему IP:Port. Реально нкесколько меньше - т.к. часть адресов зарезервированы а часть портов обычно не используется для исходящих соединений.

     
  • 3.66, Аноним (-), 23:35, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Школьник, где ты видел тормоза JavaScript?

    Только что, в соседней вкладке.

     

  • 1.2, Аноним (-), 11:57, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Например, при построении множества Мандельброта с использованием SIMD наблюдается четырёхкратное увеличение производительности. В некоторых других тестах скорость возрастает до 10 раз.

    Верной дорогой идёте, товарищи! Ведь фаерфокс это не веб-браузер.

     
     
  • 2.9, Денис Смирнов (?), 13:00, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Да, он уже давно не веб-браузер.

    Последние годы приложения, которые по традиции продолжают называть веб-браузерами по сути являются специализированными ОС, а веб-сайты являются приложениями, у которых часть кода выполняется на сервере, а часть -- на клиенте.

     
     
  • 3.15, cmp (ok), 14:08, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это да.
     
  • 3.20, Xasd (ok), 15:27, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > а веб-сайты являются приложениями

    зависит от web-сайта.

    бывают обычные web-сайта (сайт с информацией).

    а бывают web-приложения.

    Firefox даёт возможность выбора -- открывать можно и web-сайты и web-приложения.

    а люди которым не нравятся web-приложения -- кто-то разве насильно заставляет использовать web-приложения?

     
     
  • 4.47, Аноним (-), 19:21, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > кто-то разве насильно заставляет использовать
    > web-приложения?

    Ну... заходя на сайт я заранее не знаю что мне вгрузят - информацию или приложение.

     
     
  • 5.68, Xasd (ok), 23:53, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > я заранее не знаю что мне вгрузят

    тык крестик нажми, в случае если что-то не понравится

     
     
  • 6.81, Аноним (-), 05:06, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > тык крестик нажми, в случае если что-то не понравится

    Поздно пить боржоми когда почки отказали...

     
  • 3.41, rob pike (?), 18:47, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Киса, не говорите красиво.
    А то еще давайте игры называть "специализированными ОС", в них ведь вся логика обычно на Lua написана, и на сервере тоже много чего выполняется.
     
  • 2.42, Аноним (-), 19:00, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Блин, а может мне оно как раз надо на веб-странице? Чего это за множество такое?
     

  • 1.6, Анонимус_б6 (?), 12:36, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >Реализация API JS-SIMD не привязана к специфичным реализациям SIMD и может использовать как SIMD-инструкции Intel, так и ARM

    отлично, а где АМД спрашивается?

     
     
  • 2.8, EuPhobos (ok), 12:45, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Потестировал на AMD, прирост явно виден, от 10-25 FPS до ~150-200 FPS
     

  • 1.7, YetAnotherOnanym (ok), 12:41, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не, а чо, клёвая штука - теперь распределённо брутфорсить хэши паролей можно ещё быстрее.
     
     
  • 2.21, Xasd (ok), 15:29, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Не, а чо, клёвая штука - теперь распределённо брутфорсить хэши паролей можно
    > ещё быстрее.

    не забудь только на web-сайте написать фразу -- "пожалуйста не закрывайте эту web-страничку. даже если она для вас бесполезна".

    а-то ведь за 3 секунды много не набрутфорсишь :-)

     
     
  • 3.53, Аноним (-), 21:23, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > не забудь только на web-сайте написать фразу -- "пожалуйста не закрывайте эту
    > web-страничку. даже если она для вас бесполезна".

    Да легко. Сделать какую-нибудь казуальную игрушку...

    А вообше, вот: http://crypto.stanford.edu/flashproxy/ - да-да, некоторые сайты могут тебя без спроса поюзать как websocket-based прокси для анонимизации. И ты будешь проксировать чей-то трафф. Впрочем с учетом надвигающейся интернет-гестаповщины, нам это пригодится.

     
     
  • 4.67, Аноним (-), 23:44, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > http://crypto.stanford.edu/flashproxy/

    404
    Только по https открываеца

     
     
  • 5.82, Аноним (-), 05:08, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Только по https открываеца

    У меня открывается и так и сяк. Подозреваю что у вас на пути засел какой-то прозрачный прокси поставленный людьми "синдромом вахтера", который видимо не в восторге от таких инициатив как эта. Возможно рубануто по URL.

     

  • 1.10, x0r (??), 13:12, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    тогда уже проще на PNaCl приложения делать
     
     
  • 2.13, Аноним (-), 13:42, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > тогда уже проще на PNaCl приложения делать

    Мозильщики не ищут легких путей - они предпочитают гланды через ж...у автогеном удалять, адски костылируя JS.

     
  • 2.17, Lain_13 (ok), 14:46, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если учесть, что тебе всё одно руками писать поддержку этих инструкций не нужно и это за тебя сделает Emscripten, то можно считать, что ничего не изменилось, просто некоторый код, скомпилированный в asm.js представление, теперь будет работать быстрее в случае его сборки новыми версиями Emscripten и поддержки этих команд браузером.

    Строго говоря нет ни какой разницы между PNaCl и asm.js — и то, и другое оперирует с байткодом. Просто байткод для asm.js оформлен в форме JS инструкций и управляющих комментариев, а не бинарный, и потому теоретически его легче читать и понимать, но в большинстве случае тебе всё одно не придётся этого делать.

     
     
  • 3.33, Crazy Alex (ok), 17:34, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Угу. В теории разницы между теорией и практикой нет. На практике это, понятное дело, не так.

    Разница в том, что в случае NaCl мы имеем слегка модифицированный существующий компилятор, поддерживаемый большой командой специалистов и работающий без особой чертовщины. Вот этой новости в случае NaCl вообще быть не могло - инструкции - они инструкции и есть, если LLVM их поддерживает для данной платформы - то и будет использовать.

    А вот с asm.js - трансляция черт знает во что, потом то ли JIT, то ли нет, то ли оптимизируют, то ли не сумеют... Зачем оно всё, есил можно использовать гораздо более прямолинейную технику, да ещё при этом получить гарантированную изоляцию от JS?

     
     
  • 4.39, Lain_13 (ok), 18:42, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще-то asm.js обычно генерируется через Emscripten, который его генерирует в свою очередь из всё того же LLVM байткода. Причём конкретно в Firefox он не JIT, а AOT. По-сути этот всё тот же LLVM байткод, что и PNaCl, только выполняемый штатным компилятором браузера, что как понижает количество лишних компонентов в браузере, так и идёт на пользу этому штатному компилятору так-как его приходится оптимизировать, а от большинства таких оптимизаций выигрывают все, а не только приложения на asm.js. В любом случае для получения того или иного в браузере нужно либо туда засунуть компилятор LLVM-байткода и PPAPI, либо расширить функциональность встроенного компилятора JS.

    PPAPI надо потому, что PNaCl приложения вынуждены им пользуется, а как ты должен знать Mozilla хоть и участвовала в разработке PPAPI, но забросила этот проект и решила, что плагинов не должно существовать вовсе. В результате PPAPI так и не был принят в Firefox, а без него там невозможен и PNaCl.

    Из реальных минусов asm.js мне видится только лишь конский размер сгенерированного кода, но это во многом исправимо путём его архивации… что и так обычно происходит при отдаче страниц, стилей и скриптов. PNaCl просто этот шаг пропускает и сразу работает с байткодом, но в результате мы получаем два компилятора в браузере и непонятно зачем нужный API для плагинов вместо развития того, что там и так уже есть.

     
     
  • 5.55, Аноним (-), 21:27, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > из всё того же LLVM байткода.

    Да, и в результате
    1) Лишние действия для програмера.
    2) Дурное IR - пухлое и ресурсожoркое. JS никогда не делался для того чтобы быть IR.
    3) Уйма костылей и дeбилизмов неизвестно ради чего.

     
     
  • 6.63, Lain_13 (ok), 22:09, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > 1) Лишние действия для програмера.

    Не совсем понимаю в чём? В компиляции через Emscripten? Она 1 раз настраивается.
    В отладке? Тут пока да, но это решаемая проблема и ещё решают.

    > 2) Дурное IR - пухлое и ресурсожoркое. JS никогда не делался для того чтобы быть IR.

    Я практически это и сказал выше. Это реальный минус, хоть и не сильно существенный, как мне кажется. Тем более, что жрёт только память, да и то в основном за счёт размера кода. asm.js код ведь сразу скармливается AOT-компилятору пропуская стадию интерпретации. Я помню обсуждался вопрос хранения уже собранного бинарного кода локально и подгрузки его из локального хранилища, но не знаю было ли это реализовано.

    > 3) Уйма костылей и дeбилизмов неизвестно ради чего.

    А тягать с собой ещё один компилятор, который больше нигде нафиг не нужен, это не костыль? А работать с тем, что в браузере есть напрямую через API для плагинов это не костыль? Фига ж себе!

    При том, что в asm-js из костылей пожалуй только управляющие комментарии с подсказками для компилятора. Тем более, что они фактически сделали возможной низкоуровневую оптимизацию и AOT компиляцию в обычных веб-проектах и сохранили полную обратную совместимость с обычным JS.

    Или тебя не устраивает, что они в качестве памяти используют TypedArray?

     
     
  • 7.69, Xasd (ok), 23:56, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    всё правильно написал -- и плюсы есть у asm.js и минусы. просто плюсы перевешивают. :)

    а однобоковая характеристика здесь неуместна (у любой технологии есть и плюсы и минусы).

     
  • 7.74, Crazy Alex (ok), 04:04, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лично меня больше всего не устраивает, что эта хрень продевает жизнь джаваскрипту, сохраняя иллюзию, что на нём можно что-то толковое писать.

    И ещё раз напоминаю, что в NaCl без буковки P никакого компилятора на стороне клиента не требуется.

     
     
  • 8.83, Lain_13 (ok), 05:25, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    8230 и с ним есть такая проблема, как его абсолютная непереносимость ни на что... текст свёрнут, показать
     
  • 7.85, Аноним (-), 05:47, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это даже не компиляция а просто дурная трансляция более-менее нормального IR от ... текст свёрнут, показать
     
     
  • 8.88, Lain_13 (ok), 07:05, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще-то SIMD в данном случае это когда у тебя есть код, который можно распарал... текст свёрнут, показать
     
     
  • 9.94, Аноним (-), 18:28, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    SIMD - это когда у тебя есть большой кусок данных который надо более-менее однот... текст свёрнут, показать
     
     
  • 10.98, Lain_13 (ok), 20:29, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я просто оставлю тут вот эту ссылку, а то она тебе вроде как нужна https gith... текст свёрнут, показать
     
  • 5.73, Crazy Alex (ok), 04:01, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ХЗ какой он там байткод, но  новости вроде текущей ясно показывают, что оно требует каких-то дополнительных телодвижений для скармливания вменяемого кода процессору по сравнению с PNaCl.  И тем более -  по сравнению с NaCl, в котором вообще готовый исполняемый бинарь прилетает. Учитывая, что у нас живых аж шесть архитектур - (а по факту - три: intel 32/64 и arm32) - на практике необходимость PNaCl не слишком очевидна.

    А что Мозилла последние несколько лет двинулась головой и отчаянно старается воевать с гуглом, беря из Хрома только худшее - ну да, есть такое. Что ж делать.

    А API для плагинов - это хорошо. Это значит, что у браузера чуть меньше шансов оказаться вешью в себе и чуть больше - взаимодействовать с окружением, в котором он находится.

     
     
  • 6.84, Lain_13 (ok), 05:44, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    О да, плагины это вообще такая классная штука. Сколько лет уже наблюдаем постояную галиматью с Флэшем, Явой и прочими кривыми недоделками. Очень хорошо и, главное, нужно. Их не должно существовать. Вообще.

    А про дополнительные телодвижения это чьи телодвижения-то? Твои или Мозиллы, Интела и Гугла? А тебе не пофиг каким местом и когда они там двигают? А сколько нужно телодвижений и кому, чтоб сделать новую оптимизацию или фичу в том, чем ты NaCl код собирал? Про NaCl я выше уже написал и тремя архитектурами тут не отделаешься. Придётся вести пожизненную поддержку этому геморрою, а когда внезапно появится ещё одна архитектура (кто-то ожидал ещё 10 лет назад ARMы в каждом доме?), то все старые бинари можно будет просто выбрасывать на помойку, а кто новые версии собирать будет?

     
     
  • 7.86, Аноним (-), 05:52, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда если нужна нормальная производительность в приложениях - сделайте нормальн... текст свёрнут, показать
     
     
  • 8.87, Lain_13 (ok), 06:04, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну Crazy Alex тут задвигает, что NaCl и больше не надо А тут видишь, уже как ми... текст свёрнут, показать
     
     
  • 9.95, Аноним (-), 19:53, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    IMO, PNaCl - чтобы не вышло так что обладатели очередной архитектуры внезапно в ... текст свёрнут, показать
     
  • 3.54, Аноним (-), 21:25, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Если учесть, что тебе всё одно руками писать поддержку этих инструкций не
    > нужно и это за тебя сделает Emscripten, то можно считать, что
    > ничего не изменилось,

    ...кроме того что JS - очень галимный вариант промежуточного выполняемого кода. И грузится в браузер многометровая портфнка. Которую уже не прочитаешь, ибо читать минимизированный автосгенеренный код удовольствие на любителя, и которая тормозит и память жрет в три горла. В этом плане гугл получает 5 очков форы вперед - нормальный тулчайн, человеческий подход.

     

  • 1.16, клоун (?), 14:08, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ещё один нестандартизированный и ни с кем не совместимый API в HTML. Ура! Ура! Ура! Больше бардака. Больше!
     
     
  • 2.18, Lain_13 (ok), 15:03, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А теперь ходим по ссылкам в статье и фалломорфируем от осознания того факта, что этот API оказался каким-то образом совместим с Хромом и выдаёт там те же плюшки, что и в Фоксе. Действительно, как же так получилось? Может дело в том, что над этим API работала не только Мозилла, но и Google, и даже Intel, чем сходу превратили его в совместимый со всеми нормальными браузерами стандарт de facto? Причём поработали так, что идентичный профит получился даже на процессорах от AMD, которые в статье не указаны.

    Более того, они все вместе работают над продвижением этого API в ES7, что сделает его стандартом de jure. У тебя есть возражения против API для распараллеливания вычислений в стандарте ES7?

     
     
  • 3.23, Latin1 (?), 15:55, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > идентичный профит получился даже на процессорах от AMD

    Процессоры AMD реализуют SIMD-инструкции Intel.

     
     
  • 4.31, Stellarwind (?), 17:23, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    В статье написано ARM, а не AMD :) Товарищ читал по диагонали.
     
     
  • 5.36, Lain_13 (ok), 18:14, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если ты это обо мне, то нет, я в курсе, что в статье написано ARM, но фокус в том, что на процессорах AMD все эти оптимизации дают тот же профит, хотя AMD в разработке стандарта вроде как не участвовало. Ну а он мне пояснил почему, за что ему спасибо.
     
  • 3.25, клоун (?), 16:11, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > совместимый со всеми нормальными браузерами стандарт

    Этот стандарт уже существует и называется HTML5.

    Я пытаюсь достучаться до твоего разума и сказать ему: что ещё один не-стандарт, который некоторые браузеры считают стандартом, а другие не считают, а третьи реализуют иначе, ничего, кроме бардака, не создаёт.

     
     
  • 4.26, Lain_13 (ok), 16:25, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Знаешь, мне даже дико интересно стало как ты собираешься приплести API для распараллеливания вычислений в JS к стандарту для разметки веб-страниц. Да что меня, я уверен, что мы тут все сейчас внимательно тебя слушаем.
     
     
  • 5.27, клоун (?), 16:34, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    HTML5 был создан, как единый язык разметки. Он расширяет, улучшает, ля-ля-ля, а также добавляет единое API для сложных веб-приложений.

    единое API для веб-приложений
    единое API
    единое
    API

    > как ты собираешься приплести API  к стандарту для разметки веб-страниц

    http://www.w3.org/Consortium/contact

     
     
  • 6.28, Lain_13 (ok), 16:47, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ок, и какое это всё имеет отношение к расширению стандарта ECMAScript путём добавление нового API в спецификацию ES7? Каким образом это нарушает единый API для веб-приложений? Ты вообще хот раз задумывался над тем что именно подразумевается под API для веб-приложений в контексте языка разметки веб-страниц и какое это всё имеет отношение к JS?
     
     
  • 7.30, клоун (?), 17:16, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Не дошло... Ну и ладно. Хочешь, анекдот расскажу? Слушай: ЛОПАТА.
     
     
  • 8.34, Lain_13 (ok), 18:09, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну извини, я тебе рассказывать всё это так, чтоб дошло, не намерен И так предос... текст свёрнут, показать
     
  • 6.35, Geol (ok), 18:14, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    HTML5 не язык разметки
    HTML5 не добавляет единое API для веб-приложений. Он объединяет стандартом требования к разметке и  пару десятков разных пересекающихся и не очень JavaScript API =)
     
     
     
    Часть нити удалена модератором

  • 8.38, Geol (ok), 18:35, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    До меня не дошло, каким боком стандарт HTML5 5 1 пересекается с Asm js Это же ... текст свёрнут, показать
     
  • 7.43, Lain_13 (ok), 19:14, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну давай обратимся к W3C: http://www.w3.org/TR/html5/

    Если верить секции Abstract, то HTML5 это очередная версия спецификации языка разметки гипертекста Она, как и её предыдущие версии, как определяет новые элементы страницы в этом языке, так и то, как с ними можно взаимодействовать из кода. Сверх того она определяет набор объектов, который должен быть доступен из кода в самом браузере, и тут я согласен, что к разметке страницы они отношения действительно не имеют (собственно как и взаимодействие с элементами страницы), но это ведь уже давно не новость — HTML4 тоже не ограничивался одним лишь языком разметки.

    Я всё это к тому, что я не согласен с тем, что это «не язык разметки», хотя согласен с тем, что спецификация HTML5 определяет нечто большее, нежели язык разметки гипертекста.

    Важным моментом является то, что HTML5 никак не ограничивает JS в наборе используемых в нём команд, а лишь описывает какие свойства и функции должны быть доступны у объектов на странице и в самом браузере из JS. За функциональность самого JS отвечает спецификация ECMAScript и реализация новых API в ней вообще никак не влияет на совместимость кода с HTML5.

    Именно потому мне так забавно наблюдать за тем, как тов. клоун пытается утверждать обратное.

     
     
  • 8.48, Geol (ok), 19:23, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вопрос определения Пусть будет не только язык разметки В спецификации про... текст свёрнут, показать
     
     
  • 9.49, Lain_13 (ok), 19:29, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я и не говорю, что это не так Просто тов клоун утверждает, что добавление ново... текст свёрнут, показать
     
     
  • 10.96, Аноним (-), 19:59, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну что ты как маленький Досадно клоуну, что его любимый IE-е-е - теперь отнюдь ... текст свёрнут, показать
     
  • 6.50, Anonplus (?), 19:46, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Не выдирай слова из контекста. Это я про единое API. HTML и JS это не две разные реализации одного и того же. Это совсем разные сущности. Это все равно, что ты бы предложил привести к одному стандарту TCP/IP и C++ на том основании, что эти стандарты задействованы вместе при создании некоей программы.
     
     
  • 7.75, клоун (?), 04:06, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Firefox браузер или нет? Задача браузера (единственная) - правильное отображение веб страниц. Нтмл5 - стандарт правильного отображения веб страниц.

    Никаких других стандартов быть не должно.

     
     
  • 8.89, Lain_13 (ok), 07:32, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, давай сначала давать свои собственны определения терминам, а потом строить и... текст свёрнут, показать
     
     
  • 9.90, клоун (?), 14:15, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чем больше ты пытаешься умничать, тем больше я убеждаюсь что прав ... текст свёрнут, показать
     
     
  • 10.91, Lain_13 (ok), 14:19, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну естественно я прав, разве могло быть иначе Спасибо, что наконец признал это ... текст свёрнут, показать
     
  • 8.97, Аноним (-), 20:02, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тогда после реализации HTML5 можешь ложиться в могилку и присыпаться земличко... текст свёрнут, показать
     
     
  • 9.101, клоун (?), 11:08, 12/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ситуация с web-документами такая же, как и с электронными должен быть один стан... текст свёрнут, показать
     
     
  • 10.102, Geol (ok), 11:24, 12/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Стандарт HTML и стандарт язырка JavaScript EcmaScript - это два разных, непере... текст свёрнут, показать
     
     
  • 11.103, клоун (?), 11:38, 12/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот и камень преткновения Я считаю, что стандарт документов электронных, web, ... текст свёрнут, показать
     
     
  • 12.104, Geol (ok), 12:09, 12/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Причем тут вообще отображение документа EcmaScript имеет к нему ровно такое же ... текст свёрнут, показать
     
     
  • 13.108, Anonym2 (?), 23:11, 14/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот уже ни причём, при том что должно быть при чём То есть так называемый брауз... текст свёрнут, показать
     
  • 3.52, Michael Shigorin (ok), 20:13, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот, весь кайф поломали поклоннику одной копрорации, которая как раз и славится "ещё одними нестандартизированными ни с чем не совместимыми" и если бы только API...

    PS: #37 удалено как преднамеренная ложь.

     

  • 1.106, Брат Анонпитонер (?), 13:35, 13/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Только тырнет не 1,44, а 3.14. Для фешуя, не?
     

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



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

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