• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przeplatanie TypeScript i asm.js, a strata wydajności.

Object Storage Arubacloud
0 głosów
248 wizyt
pytanie zadane 7 listopada 2015 w JavaScript przez jegor377 Stary wyjadacz (13,230 p.)
Siema,

Czy jeżeli będę przeplatał typescript i asm.js, to stracę dużo na wydajności? Czy niektóre opcje asm.js zanikną? Oraz czy da się pisać kod asm.js w innym języku niż C++? Znam C++, ale o wiele bardziej podoba mi się np. C# (który nie mógłby mi posłużyć ze względu na Garbage Collector)? Są jeszcze jakieś alternatywne języki po za rodziną C?

2 odpowiedzi

+1 głos
odpowiedź 7 listopada 2015 przez Comandeer Guru (601,570 p.)
wybrane 7 listopada 2015 przez jegor377
 
Najlepsza
Da się "pisać" we wszystkim, co emscripten przekompiluje do asm.js. Nie ma sensu pisać asma - on jest po prostu targetem dla narzędzi tego pokroju.

asm.js jest tak wąskim subsetem JS, że nie ma sensu pchać w to TS. Trzon aplikacji zostawiłbym po prostu jako efekt kompilacji, a resztę - jako TS albo kod JS.

I zanim ktoś się czepi: tak, wiem, że to nie jest prawdziwa kompilacja.
komentarz 7 listopada 2015 przez jegor377 Stary wyjadacz (13,230 p.)
no spk, dzięki. Jedno pytanko tylko mam:

Pobrałem emscripten i napisałem sobie byle co (coś najprostrzego), przekompilowałem i dostałem 68k linii kodu. Nasuwa się tylko jedno pytanie - gdzie tu optymalizacja? Może robię coś źle? Kompiluje to linijką emcc -s ASM_JS=1 plik i w sumie nwm co robi to -s, ale bez tego nie działa, bo emcc nie wie wtedy co to ASM_JS=1 oraz bierze to za plik.
komentarz 7 listopada 2015 przez Comandeer Guru (601,570 p.)
Problem polega na tym, że do prostych programów coś takiego nie ma sensu, bo równie dobrze można je napisać w czystym JS. Optymalizacja jest znaczna, gdy program musi wykonać jakieś obliczenia i jest bardziej skomplikowany. Musiałbyś coś większego mieć, co można by przepuścić przez emscripten.
komentarz 7 listopada 2015 przez jegor377 Stary wyjadacz (13,230 p.)
aaa, już ogarniam, dzięki! :) W sumie to chciałem sobie napisać mini kompilator asm'a na androida w składni intela (dyrektywy oczywiście bym sobie jakieś wymyślił) i sobie pomyślałem, że napiszę to pod phonegap (to śmiga na apache cordova podobno i to pozwala na tworzenie apek na androida), bo jak pobrałem xamarin dla C# to się okazało, że muszę ogarnąć sobie android studio, żeby robić wygląd apki i do tego mam 30 dni triala + pobierałem to 2h, a instalowałem z 5h (vs15), tak więc to mi się nie opłaca, a trochę boję się, że zwykły js nie będzie tak szybki jak c#, więc zainteresowałem się asm.js i chciałem to trochę połączyć z typescriptem, bo gdzieś czytałem, że oferuje fajną obiektowość i bardziej ogarniętą składnię tejże obiektowości, interfejsów itp... Generalnie to chcę się go nauczyć. :)
+1 głos
odpowiedź 7 listopada 2015 przez event15 Szeryf (93,790 p.)
Nigdy nie słyszałem o asm.js ale pytasz o inne języki:
http://kripken.github.io/mloc_emscripten_talk/#/36

Możliwe, ze to pomoże, jeżeli chodzi o wydajność to się nie wypowiem. Pytanie tylko czy to duża aplkiacja - bo jeżeli robisz aplikację gdzie różnica wydajności jest tylko dla jednego użykownika i rzędu pół sekundy to nie wiem czy warto się rozwodzić na ten temat.
komentarz 7 listopada 2015 przez jegor377 Stary wyjadacz (13,230 p.)
narazie pobrałem niby ten cały kompilator. Kompilowałem 2394032980932894038290480932840909328094820 godzin prostego hello worlda, patrzę w kod, a tam 68 854 linie kodu, które w ogóle nie kojażą się z tym co było na stronie, więc nwm czy coś robię źle, czy to tak ma być? xdd
komentarz 7 listopada 2015 przez Comandeer Guru (601,570 p.)
asm.js to super wydajny subset JS stworzony przez Mozillę jako target dla cross-compilerów typu EmScripten (de facto powstał z patternów używanych przez EmScriptena). http://asmjs.org/

Obecnie dąży się do wytworzenia bytecode'u, który pozwoli odpalić dowolny język w środowisku semantycznym JS: http://www.2ality.com/2015/06/web-assembly.html → prace takie oczywiście sprawią, że asm.js nie będzie więcej potrzebny.

Podobne pytania

0 głosów
3 odpowiedzi 518 wizyt
pytanie zadane 5 sierpnia 2020 w JavaScript przez Nickowy3456 Użytkownik (610 p.)
–1 głos
0 odpowiedzi 252 wizyt
pytanie zadane 27 maja 2016 w JavaScript przez jegor377 Stary wyjadacz (13,230 p.)
0 głosów
1 odpowiedź 279 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...