Просмотр полной версии : Qaop:HTML5 ZX Spectrum emulator
Крутой язык программирования Java Script! Имея многоядерный 64-битный процессор частотой 3 ГГц, гигабайты ОЗУ, а еще видеоплату, которая может быть мощнее всего компьютера. :) Мы кое как смогли эмулировать ZX Spectrum.
Браво разработчикам JS ! Гениальное творение :)
Браво разработчикам JS ! Гениальное творение :)
А что, сильно дофига принципиально кроссплатформенных эмуляторов написано?
Этот даже в браузере в телефоне должен работать.
А что, сильно дофига принципиально кроссплатформенных эмуляторов написано?
Этот даже в браузере в телефоне должен работать.
Java например.
Java например.
Ага, эмуль для десктопа не будет работать в браузере, апплет не будет работать на телефоне, а j2me-приложение для телефона - на андроиде. А с айфоном вообще все плохо.
Сабж же способен работать везде. Теоретически.
Ага, эмуль для десктопа не будет работать в браузере, апплет не будет работать на телефоне, а j2me-приложение для телефона - на андроиде. А с айфоном вообще все плохо.
Сабж же способен работать везде. Теоретически.
Печально, когда Oracle купила Java и наехала на пользователей, то все разработчики решили забить на интеграцию. А так все хорошо начиналось.
Есть еще Flash. Он то же побыстрее будет. Но он так же не всеми поддерживается.
Пусть у JS нет сейчас альтернативы, но это не прощает его производительности. Пора бы уже Гуглу прикрутить какую нибудь производительную виртуальную машину к своему браузеру, а остальные подтянутся. Гуглу это было бы выгодно, он смог бы реализовать полноценный Веб Офис...
Есть эмуляция бипера и 128й режим.
Бипер сделан под Web Audio API и работает только в хроме.
А в остальном эмуль понравился, работает действительно шустро, но не во фрейм конечно.
Пусть у JS нет сейчас альтернативы, но это не прощает его производительности. Пора бы уже Гуглу прикрутить какую нибудь производительную виртуальную машину к своему браузеру, а остальные подтянутся.
Не выйдет, это скриптовый язык со всеми плюшками вроде динамической типизации, да еще и с совершенно безумной моделью наследования.
Если на джаве писать в том же стиле, как пишут на JS - а это возможно (где вообще возможно) только с постоянным использованием рефлексии - то скорость будет ничуть не выше, чем у JS.
Но разработчики браузеров и так стараются, как могут. Практически каждый релиз хрома/файрфокса декларирует увеличение скорости интерпретации JS на несколько процентов.
PS а, виртуальную машину не для JS, а как отдельную новую фичу? Ну, flash и silverlight - это вполне оно. Правда, HTML5 и CSS3 именно для их убийства и созданы :)
ну отчего же, в 12м FireFox тоже звук отличный
В Опере и IE тишина.
Zorki-4k
03.05.2012, 22:05
В фаерфоксе слышу звук, других браузеров не держим. Правда, если бипать в бейсике, то тормозит.
Zorki-4k
04.05.2012, 15:33
breeze, Win7, FF 12.0
mastermind
06.05.2012, 01:32
Пора бы уже Гуглу прикрутить какую нибудь производительную виртуальную машину к своему браузеру, а остальные подтянутся.
Дык в хроме давно уже 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/faster-canvas-pixel-manipulation-with-typed-arrays/
Есть даже C/C++ компилятор в JS: https://github.com/kripken/emscripten/wiki
В современных браузерах (и на современном железе) код получаемый в результате работает довольно шустро. (см. демки по ссылке выше + вот еще Doom: http://www.youtube.com/watch?v=WDUPZRQf7oc )
Дык в хроме давно уже JIT (см. http://code.google.com/p/v8/ ) и в файрфоксе тоже. (https://wiki.mozilla.org/JavaScript:TraceMonkey )
А толку то. Я про производительность писал. А то у нас аналог 286 процессора на реальном 4-х ядерном 64-битном процессоре.
mastermind
06.05.2012, 01:52
А толку то. Я про производительность писал. А то у нас аналог 286 процессора на реальном 4-х ядерном 64-битном процессоре.
Вот тут есть кое какие тесты: http://blog.j15r.com/2011/12/for-those-unfamiliar-with-it-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 лет отстают от прогресса.
mastermind
06.05.2012, 02:09
Ну не то чтобы портировали особо, скомпилировали как раз упомянутым 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 ----------
Doom - это 1993 год. На 20 лет отстают от прогресса.
20 лет назад тоже можно было скомпилировать сишный код Дума в JS и запустить в браузере? (в виртуальной машине JS)
скомпилировали как раз упомянутым enscripten
Дак я Doom у упомянул, как пример работы enscripten.
где на хабре про тормоза, обрезание фич и т.п.-то?
А это то что я видел и мои друзья, которым я ссылку разослал. Я же первый побежал играть в свою любимую игруху.
Убрали потому что правообладатели наехали.
Ну да, наивно так думать. Если они запретили WAD, то в сети лежит куча бесплатных WAD-ов. Этот DOOM это демонстрация возможностей enscripten, а не возможность поиграть в оригинальный DOOM.
И вообще, правообладатели даже исходники опубликовали и не трогают десятки современных клонов.
---------- Post added at 01:20 ---------- Previous post was at 01:13 ----------
20 лет назад тоже можно было скомпилировать сишный код Дума в JS и запустить в браузере? (в виртуальной машине JS)
Сейчас сишный код транслируют в JS, а JS компилируется в нативный код. А 20 лет назад люди компилировали сишный код прямо в нативный. И программа получалась в >1000 раз производительнее.
Грубо, максимум:
4 ядра по 2 команды за такт по 3 ГГц = 4*2*3000 = 24000 миллиона операций. Может обработать 128 бит за такт.
1 ядро 4 такта на команду 33 Мгц = 33/4 = 8 миллионов операций. Может обработать 32 бита за 4 такта.
mastermind
06.05.2012, 02:22
Ну да, наивно так думать.
Угу, и письмо от юристов id software мозиловцы никак сами сочинили: https://wiki.mozilla.org/Legal/Infringement_Notices/3_June_2011
х.з. Почему же ZDoom, GZDoom, jDoom, WinDoom.. не закрыли?
mastermind
06.05.2012, 02:29
Сейчас сишный код транслируют в JS, а JS компилируется в нативный код. А 20 лет назад люди компилировали сишный код прямо в нативный.
Да и сейчас никто не запрещает компилировать прямо в нативный. Но и компиляция в JS имеет свое применение. 20 лет назат такого выбора не было.
И программа получалась в >1000 раз производительнее.
Результаты тестов что я приводил выше говорят что эта цифра мягко говоря завышена (реально порядка 20 раз разница), да и если б действительно в 1000 раз была разница, ни о каких Думах и т.п. не могло бы быть и речи совсем.
---------- Post added at 01:29 ---------- Previous post was at 01:28 ----------
х.з. Почему же ZDoom, GZDoom, jDoom, WinDoom.. не закрыли?
Х.з., правообладатель вправе решать что запрещать что разрешать делать со своей собственностью.
да и если б действительно в 1000 раз была разница, ни о каких Думах и т.п. не могло бы быть и речи совсем.
Дак дум работает с теми же FPS на 386DX 40 Мгц. Этот процессор явно не в 20 раз медленнее современного. А значительно медленнее.
P.S. Это я еще не вспоминаю о современных видеоплатах, в которых 3000 ядерные процессоры. 3072 ядра * 917000000 Гц = 2 817 024 000 000 операций в секунду.
Q-Master
07.05.2012, 22:15
Да и сейчас никто не запрещает компилировать прямо в нативный. Но и компиляция в JS имеет свое применение. 20 лет назат такого выбора не было.
А нативный код в бразвере это какой? Процессоров 100500 штук разных и поддержать хотя-бы основные уже геморрой. JS в данном случае спасает-же.
mastermind
07.05.2012, 22:22
А нативный код в бразвере это какой? Процессоров 100500 штук разных и поддержать хотя-бы основные уже геморрой.
Я не имеел ввиду браузеры в данном случае.
sergio78
08.05.2012, 23:00
Какая фиг разница. Нативный код в браузере, тоже тормоз ещё какой. Ради прикола, поставте игрушку мини ниндзи в версии репак-торрент едишон, а потом запустите в хроме её нативный порт. Почувствуй , как говорится разницу. Я не понимаю, зачем всё это сделано. Кому то ресурсов современного компа слишком много, или предполагалось кухарок основам программирования обучать?
Q-Master
09.05.2012, 21:45
Я не имеел ввиду браузеры в данном случае.
А есть разница? Есть много процов. Более того, открою тебе страшнейшую тайну: Есть процы с разным порядком следования байт в памяти и разными принципами построения слов инструкций ЦП. А самое прикольное в том, что большинство горе-прогламеров понятия об этом не имеет и пишет то, что якобы кросс-платформенно, а в результате работает только на очень определенном наборе цп. В таких случаях интерпретаторы таки спасают. Ну или ллвм.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot