Bináris kódolással gyorsulhat tovább a JavaScript kódok futtatása
2019-05-20T11:18:18+02:00
2019-06-10T08:25:00+02:00
2022-07-20T21:04:17+02:00
  • Elsõ generációs androidos telefonon dolgozva valóban lassú egy kicsit.
    Mutasd a teljes hozzászólást!
  • Az angular cli-t mondjuk azért hoztam fel, mert pont tegnapelőtt néztem rá, hogy mi a helyzet vele, akarok-e vele dolgozni. Hát nem akarok. 2-3 perc volt mire újraindult a 'hello app' "hello world"-re, átszerkesztés után. Nem tudom mennyire lehet külön buildelni. Szerintem I7 alatt felejthetem ezeket.
    Mutasd a teljes hozzászólást!
  • Gyönyörű. Alig várom már. De tényleg alig. Így is majd 2 perc mire az angular-cli lefordul nálam egy hello világra.

    Szerintem túlzott a pesszimizmusod: ez az előfeldolgozó pont olyasmit csinál, amit egyébként a JS engine tesz meg, ráadásul mindenenre újra, nulláról. Tehát ha csak pár rész változik, már nyereséges lehet a dolog, ha meg egynél többször fut a kód két változás között, akkor biztosan az.
    Mutasd a teljes hozzászólást!
  • Nagyjából nekem is JSX, SASS, TypeScript. A különbség, hogy dev buildnél pl. nem kell sourcemap-et generálni + tudom a webpack-et watch módban használni. Ilyenkor csak azokat a fájlokat fordítja újra amik változtak, és emiatt van az hogy rámentek a fájlra és már be is frissült a böngészőben.
    Mutasd a teljes hozzászólást!
  • Még nem mondtad mivel dolgozol. de mondjuk vegyük az általam említett példákat: JSX, SCSS. Ezeket nem támogatja a böngésző, vagyis ha nem fordítod le őket akkor nem tudod használni. Mi a különbség a prod build között és amit munka közben buildelsz?
    Mutasd a teljes hozzászólást!
  • Hát igen, erre tényleg nem gondoltam, hogy valaki prod buildet használ fejlesztéshez. Ebben az esetben tényleg hozzáadhat a build időhöz, és így már nem is annyira meglepő az a 2 perc amit írtál.
    Mutasd a teljes hozzászólást!
  • Nem tudom hogy Te mivel dolgozol, de én nem tudok különbséget tenni a dev és a prod build között. Nekem az a fontos hogy azt lássam, azt teszteljem, amit a felhasználó is meg fog kapni. Emiatt nyilván az is rossz lesz, hogy ha nem tudom olvasni a generált js kódot.  Viszont itt nem csak egy jól bevált tömörítési algoritmus van a prod és a dev között (én például a prod buildben sem tömörítek soha), hanem teljesen más formában töltődik le a kliens böngészőjébe. Bizonyára majd azt is vissza kell csatolni, hogy a böngésző támogatja-e egyáltalán és ha igen, milyen mértékben.  Ezt inkább ahhoz tudnám hasonlítani, amit SCSS, JSX, ES6 esetén csinálunk, vagyis hogy készül belőle egy sima ES5 kompatibilis js file JSX nélkül sima CSS-sel. De az legalább olvasható (tömörítés nélkül) akár a böngészőben is.
    Mutasd a teljes hozzászólást!
  • Nekem ebből az egészből az jött át, hogy ha ez a build-nek a része lesz (gőzöm sincs hogy ez a fejlesztő feladata lesz-e, vagy nem, be kell-e építeni a build rendszerbe), akkor is max production buildé.

    Szóval szerintem a 2 perces build időn (jó lassú géped lehet) ez nem fog semmilyen irányba változtatni. Esetleg production buildnél.
    Mutasd a teljes hozzászólást!
  • Hát, nem gondolnám, hogy úgy fogok fejleszteni, hogy már a "lefordított" kódot gépelem a fileba. Nyilván minden változtatás után, majd újrafordul a teljes cucc.
    Mutasd a teljes hozzászólást!
  • Ennek mi köze van ahhoz, hogy te valamilyen transpiler-t használsz?
    Mutasd a teljes hozzászólást!
  • Gyönyörű. Alig várom már. De tényleg alig. Így is majd 2 perc mire az angular-cli lefordul nálam egy hello világra.
    Mutasd a teljes hozzászólást!
  • A linkelt doksiban kitérnek erre is, de csak a legvégén:


    Will this be a new surface for attacks?

    Yes, but we believe this is a much smaller and much more controlled and testable surface than alternatives, such as bytecode.
    Mutasd a teljes hozzászólást!
  • Tekintve, hogy ez mindössze a szöveg parse-olásának folyamatát spórolja majd meg, de sem a nyelv, sem a futásidejű környezet szemantikáján semmit nem változtat meg, erre legfeljebb csak matematikai esély van.
    Mutasd a teljes hozzászólást!
  • Remélhetőleg rosszindulatú site-ok valamiféle támadásra is fel tudják majd használni a kliensek ellen.
    Mutasd a teljes hozzászólást!
  • A dolog jellege ott van a nevében is: AST = abstract syntax tree. Előparse-olt kód, a fordítás első, szövegcentrikus és így időigényes lépésének az eredménye (pl. kulcsszavak, operátorok már felismerésre kerültek, és a szintaktikai ellenőrzés is megtörtént).
    Mutasd a teljes hozzászólást!
  • Igazság szerint én úgy értettem a cikket, hogy nem valamiféle előfordítás (így nem is p-code, főként nem wasm szerű dolog) keletkezik, hanem olyan a viszony a letöltött JS kóddal, mint a JSON vs. BSON.
    A syntax elelmzés és kód-fák, változó-táblák, felépítése előfordítással és az előfordított bináris tartalom megy le a szöveges file helyett.
    De ez csak a JS szöveg egy "tömörített" másik megjelenésem visszafordítható binárisról szövegesbe, legfeljebb a változónevek módosulnak, de korrekten visszakapható a binárisból az eredeti JS text.
    Mutasd a teljes hozzászólást!
  • És milyen jól mûködött az a jó kis Hisoft Pascal Specrtrumon. Amúgy Pl. a Clipper is ilyen volt anno, csak ott a p-kódú interpertert hozzálinkelték a kódhoz, így lett belõle exe.
    Mutasd a teljes hozzászólást!
  • Why not use WebAssembly?There are massive existing untyped JS codebases, and there is no easy way to convert an untyped, garbage collected language like JS to WebAssembly.

    Szegények nem tudják, hogy a javascript nem untyped hanem dynamically typed.
    Mutasd a teljes hozzászólást!
  • Az én első p-code-ra fordító nyelvem egy Z80-as Pascal volt :)
    Mutasd a teljes hozzászólást!
  • welcome to Erlang world ;) :D
    Mutasd a teljes hozzászólást!
  • Én drukkolok, hogy a végén még zlibbel is tömörítsenek rajta.
    Mutasd a teljes hozzászólást!
  • Jézusom, még a végén feltalálják a gépi kódot.
    Mutasd a teljes hozzászólást!
  • (Csitt, ne rontsd el a JS-esek örömét - ez valami új és forradalmi, és a Facebook is benne van!)
    Mutasd a teljes hozzászólást!
  • p-code :)
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd