Zaczynam słyszeć pomruki o tym projekcie o nazwie ASM.js . Obecnie ich strona internetowa jest okropna i myląca. Oto, co wiem z moich badań w Internecie.
- Jest to podzbiór JavaScript, który można wysoce zoptymalizować. Zgaduję, ponieważ unika bardziej dynamicznych części języka.
- Wydajność kodu skompilowanego do ASM.js działa przy około połowie prędkości C (nie lekkiej).
- Celem kompilatorów jest stworzenie języka docelowego ASM.js.
- Firefox będzie dostarczany z optymalizacją ASM.js.
- Zespoły Mozilla i Unreal przeniosły silnik Unreal Engine do sieci wraz z jego uruchomieniem w wersji Firefox z niemal natywną prędkością.
Wydaje się, że w Internecie nie ma konkretnych informacji na temat tego, co to naprawdę jest, ani na temat przydatności lub ostatecznego celu. Czy to możliwe, że mogę skompilować moje podstawy kodu po stronie serwera i uruchomić go w przeglądarce z prędkością zbliżoną do natywnej? Jakie są konsekwencje dla programistów?
źródło
Wyobraź sobie ASM.js jako duży binarny ArrayBuffer zwany stertą i zestawem modułów JavaScript, które zaczynają się od dyrektywy prologue:
"use asm";
i wykonuj szybkie operacje niskiego poziomu na surowych danych binarnych, podobnych do języków asemblera. Moduły te można pisać ręcznie lub lepiej skompilować z kodu LLVM za pomocą skryptów takich jak Emscripten. Ich wydajność można zwiększyć dzięki silnikowi Mozilla OdinMonkey, ale są one kompatybilne wstecz z większością współczesnych interpreterów ECMAScript.ASM.js nie ogranicza się do gier, możesz nawet uruchamiać w przeglądarce całe aplikacje Qt, takie jak te !
źródło