Ruby koodibaasi on lisatud uus JIT-kompilaatор ZJIT

Ruby keele standardse versiooni koodibaasi on lisatud uus JIT-kompilaator ZJIT, mida reklaamitakse kui järgmist Ruby JIT-i põlvkonda. ZJIT lisatakse järgmisse olulisse Ruby 3.5 versiooni, kus see on saadaval valikuna koos YJIT JIT-kompilaatoriga ja Ruby 3.6 versioonis võib see selle asendada. Nagu YJIT, on ka uus JIT-kompilaator kirjutatud Rust keeles. Mõlemad JIT-kompilaatorid on loodud Shopify arendajate meeskonna poolt Ruby rakenduste jõudluse suurendamise algatuse raames, mis kasutavad Rails raamistikku ja teevad väga palju meetodite kutsumisi.

Erinevalt YJIT-st ei tõlgi uus JIT-kompilaator YARV virtuaalmasina baitkoodi madalama taseme vaheesituste esituseks (peamiselt praktiliselt otse masinkoodiks), vaid muudab baitkoodi kõrgema taseme vaheesituseks SSA (Static Single Assignment), mille üle saab teostada täiendavaid optimeerimisfaase ning optimeerida suuremate koodiblokkide põhjal, mitte ainult praeguste operatsioonide põhjal.

ZJIT kompileerib terve meetodi korraga, samas kui YJIT sai manipuleerida vaid baablokkide kompileerimisega. ZJIT kasutab tüüpide profiilimiseks klassikalist JIT-arkitektuuri, mis põhineb tõlgendaja kogutud ajaloolistel andmetel tüüpide kohta, selle asemel et rakendada YJIT-is kasutatud baablokkide versiooni (LBBV — Lazy Basic Block Versioning) tehnoloogiat.

Üksikasjaliku kõrgetasemelise vahe-esituse kasutamine lahendab YJIT-is tekkinud laienemise probleemid, loob aluse tulevase mitmerealise JIT-kompileerimise rakendamiseks, võimaldab rakendada loodud optimeerimisi (nt agressiivsem inline-levitamine) ja lihtsustab JIT-i kohandamist erinevatele platvormidele. Tagasi traditsioonilise tüüpide profiilimise mudeli juurde vabastab koodi keerukusest ja avab võimaluse värbamiseks uusi liikmeid (LBBV kasutamine YJIT-is viis selleni, et projekt oli teistele liikmetele arusaamatu ja arenes ainult Shopify töötajate poolt).

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster