Цитата:
А так: (function () { 'use asm'; // Тут пишем наш азм })(); |
Да, интересно услышать про манипуляции с DOM (всё-таки DOM - это фундамент классического веб-приложения то бишь сайта ). Есть ли ускорение по сравнению с JS?
|
Цитата:
DOM API - это браузерное АПИ, не имеющее абсолютно никакого отношения к JS, потому использование ASM.js никак не сможет повлиять на это. ASM.js - это отсутствие сборщика мусора (т.е. ручное управление памятью), явная строгая типизация и AOT вместо JIT. В общем основная задача ASM.js - это портирование низкоуровневых программ, например, на C/C++ в JS. |
Я поэтому и спрашиваю, что у меня есть недопонимание.
То есть не имеет смысла использовать asm.js для ускорения производительности в пользовательских веб-интерфейсах? |
Цитата:
Имеет смысл при сложных вычислениях, например, в играх, работе со звуком и графикой и т.д. Например, игровой движок Unreal Engine 4 умеет компилиться в ASM.js, а там производительность критична. |
А если говорить о desktop-подобных веб-приложениях и той же 2d-графики в <canvas>, реализованных на JS? Лично я заметил, что-подобные вещи очень сильно нагружают среднестатистический компьютер.
|
Цитата:
Цитата:
У Canvas есть 2 контекста: 1) 2d - простой АПИ, изначально работало на CPU, но сейчас браузеры могут использовать и GPU для ускорения; 2) webGL - порт OpenGL ES, позволяет писать программы напряму на GPU (c помощью GLSL шейдеров - это С, а не JS) и может работать очень быстро. Но опять таки, к JS это отношения не имеет. Вот если мы решим написать физический движок, то там будет много сложных вычислений и ASM.js даст сильный профит. Пример 2D игры на Unreal Engine, скомпиленный в JS: https://www.unrealengine.com/html5 http://beta.unity3d.com/jonas/DT2/ - демка unity 5 скомпиленного в JS Цитата:
|
Например, при активном использовании разных виджетов мой процессор (Intel® Core™ i5-4570 CPU @ 3.20GHz × 4, Ubuntu 14.04 32-bit) грузится больше чем на 60%. Это, если честно, неприлично много. Вот вам и "летает", но за какую цену.
Ну не подходит JS (ES5) для таких серьёзных вещей, а терять связь на уровне удобных манипуляций с HTML/CSS не хочется. Кстати, в случае использования ES6 производительность повысится или всё таки лучше смотреть в сторону Dart/TypeScript или Cheerp? Я правильно понимаю смысл EcmaScript? По сути, это просто стандарт языка, а его производительность будет зависеть от реализации интерпретатора в веб-движке? То есть с новым стандартом выйдет обновленный, более быстрый движок? |
Я же вам уже 3-й раз обьясняю - DOM не имеет отношения к JS, поэтому смена языка никак не скажется на производительности. Вы для начала поймите что у вас тормозит, а потом уже рвитесь оптимизировать :)
Цитата:
Цитата:
TS, Dart и т.д. - это языки которые транслируются в JS (у Darta есть своя VM, но она нигде не юзается сейчас), т.е. на выходе тот же JS. Ещё раз, всё зависит от рук, т.к. сейчас JS один из самых быстрых скриптовых языков в мире (кстатим есть хорошее правило написания быстрого JS: пишите код так, как писали бы его на C), но никто не отменял гавнокод :) Цитата:
Цитата:
|
А вообще чего я вас отговариваю: пишите на ASM.js, только учтите, что там 90% ASM и только 10% JS :D
|
Часовой пояс GMT +3, время: 10:46. |