Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.11.2015, 19:09
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Mаxmaxmаximus, лично мне было бы интересно узнать, как использовать АСМ без компилятора и в каких задачах его можно применить. В циклах, типизированных массивах, типизированных переменных - ок. Но хорошо бы узнать, помогает ли асм при работе с объектами (обычными инстансами Object) и как оптимизировать вызов одной функции внутри другой (обе на АСМ).
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #12 (permalink)  
Старый 04.11.2015, 19:01
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

лайк репост https://youtrack.jetbrains.com/issue/CPP-4974#
Ответить с цитированием
  #13 (permalink)  
Старый 29.11.2015, 09:33
Аспирант
Отправить личное сообщение для webgame Посмотреть профиль Найти все сообщения от webgame
 
Регистрация: 29.11.2015
Сообщений: 51

Я вот тоже попробовал вчера asm.js , пока что только настроил работу с ним через Emscripten в Visual Studio, могу теперь писать на с/c++ и сразу запускать html/js в браузере. Скорость выполнения такого JS приближается к нативной, и при этом работает в любом браузере! Согласен полностью, что код большой получается в .js, как то надо научиться компилировать без лишнего. Но вообще, я думаю намудрили они там... когда настраивал и разбирался с мануалом, напомнило мне это всё, как я разбирался с Marmalade, который позволял програмить один раз на одном языка, а потом портировать на все платформы, правда для этого надо изучить кучу нюансов работы с ним, переписанных ими функций, и тд, а инфы в инете очень мало, даже на английском! Портировать с++ в asm.js, настраивать Emscripten, изучать новый мануал и тп есть смысл только, если у вас много постоянно выполняемого JS кода. Если JS кода мало, то его и вручную можно написать в стиле asm.js, если выполнение JS кода это менее 10% от всей нагрузки, думаю смысла заморачиваться с ним нет. К примеру, если делать графику на WebGL/OpenGL ES, то там почти все сложные расчеты можно делать в шейдерах, что не имеют отношения к JS и быстрее выполняться не будут. А вот если у вас сложный ИИ написан на JS или какой-нить парсер, или идет интенсивная работа в DOM-ом, циклы всяких вычислений, и любые подобные вещи, которые жрут много процессорного времени при выполнении, то однозначно нужен asm.js или тп прокладки. У меня простые расчеты в цикле на asm.js выполняются в 1000 раз быстрее, чем на обычном js (с нетипизированными переменными).

Последний раз редактировалось webgame, 30.11.2015 в 00:07.
Ответить с цитированием
  #14 (permalink)  
Старый 30.11.2015, 15:05
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Сообщение от webgame
Если JS кода мало, то его и вручную можно написать в стиле asm.js
Нет не можно его вручную написать, ты мозг сломаешь когда банальное обращение к куче будешь описывать чтобы гребаный цикл for сделать

Сообщение от webgame
то там почти все сложные расчеты можно делать в шейдерах,
ага, особенно физику

Ответить с цитированием
  #15 (permalink)  
Старый 30.11.2015, 15:09
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Сообщение от FINoM
как использовать АСМ без компилятора
никак) на ассемблере проще писать код или банирниками чем на асм руками)

> в каких задачах его можно применить
обычно оптимизируют только горячие куски кода, но вслучае асм нужно весь поджект псиать на асм, по этому только горячие проэкты пишутся на нем, например физические движки или что то, что служдит платформой для чего либо другого, и должно работать максимально быстро, напимер фреймворки какие-то и.т.п., а вот игрули же, использующие эти фреймворки, должны писаться на яваскрипте, что и идеологически верно, и не затормозит игрулину так как api фреймворка будет все выкрутасы делать а ты яваскриптом только рулить им будешь.
Ответить с цитированием
  #16 (permalink)  
Старый 01.12.2015, 11:42
Аспирант
Отправить личное сообщение для webgame Посмотреть профиль Найти все сообщения от webgame
 
Регистрация: 29.11.2015
Сообщений: 51

Сообщение от Mаxmaxmаximus Посмотреть сообщение
ага, особенно физику
Я писал 3d движки на ассемблере с SSE еще 18 лет назад в школе , а щас могу писать на cuda даже расчеты по теории относительности Эйнштейна. А уж убогую игровую физику на GPU конвеер распаралелить как два пальца, даже на webgl

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

Последний раз редактировалось webgame, 01.12.2015 в 12:01.
Ответить с цитированием
  #17 (permalink)  
Старый 01.12.2015, 11:49
Аспирант
Отправить личное сообщение для webgame Посмотреть профиль Найти все сообщения от webgame
 
Регистрация: 29.11.2015
Сообщений: 51

Сообщение от FINoM Посмотреть сообщение
лично мне было бы интересно узнать, как использовать АСМ без компилятора
Можно писать и без компилятора:
http://habrahabr.ru/post/193642/
http://asmjs.org/spec/latest/
Ответить с цитированием
  #18 (permalink)  
Старый 01.12.2015, 13:37
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от webgame
Можно писать и без компилятора
Меня волнует только одно: strict mode генерирует ошибку, когда используешь какие-нибудь опасные штуки (with, дублирование свойства при определении объекта и пр.). Как сделать так, тоб АСМ тоже генерировал ошибку, если тип не определен?

Ага, нашел ответ в посте на Хабре.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности

Последний раз редактировалось FINoM, 01.12.2015 в 13:50.
Ответить с цитированием
  #19 (permalink)  
Старый 01.12.2015, 13:54
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

function x() {"use asm"; y = 0;}
x()
Почему не генерируется исключение?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #20 (permalink)  
Старый 01.12.2015, 20:10
Аспирант
Отправить личное сообщение для webgame Посмотреть профиль Найти все сообщения от webgame
 
Регистрация: 29.11.2015
Сообщений: 51

Сообщение от FINoM Посмотреть сообщение
Почему не генерируется исключение?
Честно, не разбирался что там и как, единственное что взял с asmjs.org/spec/latest/ функцию GeometricMean , вставил ее, как есть, в html и запустил в firefox, браузер написал - "Successfully compiled asm.js code". чтобы понимать почему, что там и как - надо изучать вопрос, инфа и примеры в гугле найти не проблема.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ASM.JS. манипуляция c DOM. Tsamsiyu Общие вопросы Javascript 0 10.11.2014 15:05
ASM.JS. Источники знаний. Tsamsiyu Общие вопросы Javascript 35 08.11.2014 18:53
Chrome + opera +firefox поддерживают ASM.JS DjDiablo Оффтопик 1 13.12.2013 10:14