breeze, Win7, FF 12.0
Вид для печати
breeze, Win7, FF 12.0
Дык в хроме давно уже JIT (см. http://code.google.com/p/v8/ ) и в файрфоксе тоже. (https://wiki.mozilla.org/JavaScript:TraceMonkey )
---------- Post added at 00:32 ---------- Previous post was at 00:29 ----------
Ну по крайней мере типизированные массивы сделали уже довольно давно http://hacks.mozilla.org/2011/12/fas...-typed-arrays/
Есть даже C/C++ компилятор в JS: https://github.com/kripken/emscripten/wiki
В современных браузерах (и на современном железе) код получаемый в результате работает довольно шустро. (см. демки по ссылке выше + вот еще Doom: http://www.youtube.com/watch?v=WDUPZRQf7oc )
Вот тут есть кое какие тесты: http://blog.j15r.com/2011/12/for-tho...-box2d-is.html
Судя по первой картинке код скомпиленный emscripten работает в chrome всего раз в 20 медленнее нативного (C).
Недавно народ пытался переписать Doom на Java Script. Что бы игра не сильно тормозила в 320x200, они урезали движок так, что перс временами проваливался и стрелял сквозь стены, а картинка глючила.
Через пару недель они убрали игруху из интернета.
На хабре новость про Doom была.
---------- Post added at 01:00 ---------- Previous post was at 00:57 ----------
Doom - это 1993 год. На 20 лет отстают от прогресса.
Ну не то чтобы портировали особо, скомпилировали как раз упомянутым enscripten (где на хабре про тормоза, обрезание фич и т.п.-то? http://habrahabr.ru/links/120356/ ), ссылку на youtube я выше давал.
Убрали потому что правообладатели наехали.
Портированный в JS есть Quake 2, кстати: http://code.google.com/p/quake2-gwt-port/, видео: http://www.youtube.com/watch?v=fyfu4OwjUEI
---------- Post added at 01:09 ---------- Previous post was at 01:04 ----------
20 лет назад тоже можно было скомпилировать сишный код Дума в JS и запустить в браузере? (в виртуальной машине JS)
Дак я Doom у упомянул, как пример работы enscripten.
А это то что я видел и мои друзья, которым я ссылку разослал. Я же первый побежал играть в свою любимую игруху.
Ну да, наивно так думать. Если они запретили WAD, то в сети лежит куча бесплатных WAD-ов. Этот DOOM это демонстрация возможностей enscripten, а не возможность поиграть в оригинальный DOOM.
И вообще, правообладатели даже исходники опубликовали и не трогают десятки современных клонов.
---------- Post added at 01:20 ---------- Previous post was at 01:13 ----------
Сейчас сишный код транслируют в JS, а JS компилируется в нативный код. А 20 лет назад люди компилировали сишный код прямо в нативный. И программа получалась в >1000 раз производительнее.
Грубо, максимум:
4 ядра по 2 команды за такт по 3 ГГц = 4*2*3000 = 24000 миллиона операций. Может обработать 128 бит за такт.
1 ядро 4 такта на команду 33 Мгц = 33/4 = 8 миллионов операций. Может обработать 32 бита за 4 такта.
Угу, и письмо от юристов id software мозиловцы никак сами сочинили: https://wiki.mozilla.org/Legal/Infri...es/3_June_2011
х.з. Почему же ZDoom, GZDoom, jDoom, WinDoom.. не закрыли?
Да и сейчас никто не запрещает компилировать прямо в нативный. Но и компиляция в JS имеет свое применение. 20 лет назат такого выбора не было.
Результаты тестов что я приводил выше говорят что эта цифра мягко говоря завышена (реально порядка 20 раз разница), да и если б действительно в 1000 раз была разница, ни о каких Думах и т.п. не могло бы быть и речи совсем.Цитата:
И программа получалась в >1000 раз производительнее.
---------- Post added at 01:29 ---------- Previous post was at 01:28 ----------
Х.з., правообладатель вправе решать что запрещать что разрешать делать со своей собственностью.