Glacann bunachar cód Ruby le tiomsaitheoir JIT nua ZJIT

Tá tiomsaitheoir JIT nua, ZJIT, curtha leis an gcódbhunachar cur i bhfeidhm tagartha teanga Ruby agus tá sé suite mar an chéad ghlúin eile de Ruby JIT. Beidh ZJIT san áireamh sa chéad phríomheisiúint eile de Ruby 3.5, áit a mbeidh sé ar fáil mar rogha in éineacht leis an tiomsaitheoir YJIT JIT, agus d'fhéadfadh sé a áit a ghlacadh i Ruby 3.6. Cosúil le YJIT, tá an tiomsaitheoir JIT nua scríofa i Rust. Chruthaigh foireann forbróirí ag Shopify an dá thiomsaitheoir JIT mar chuid de thionscnamh chun feidhmíocht clár Ruby a úsáideann creat Rails agus a ghlaonn ar a lán modhanna a fheabhsú.

Murab ionann agus YJIT, ní aistríonn an tiomsaitheoir JIT nua cód beart an mheaisín fhíorúil YARV go léiriú idirmheánach ísealleibhéil (beagnach go díreach i gcód meaisín), ach déanann sé an cód beart a chlaochlú go léiriú idirmheánach ardleibhéil SSA (Sannadh Aonair Statach), ar féidir céimeanna optamaithe breise a chur i bhfeidhm thar an gcód agus is féidir optamú a dhéanamh agus súil á choinneáil ar bhloic mhóra cóid, seachas brath ar oibríochtaí reatha amháin.

Déanann ZJIT tiomsú modha iomláin ag an am céanna, ach ní fhéadfadh YJIT ach tiomsú bloic bhunúsacha a láimhseáil. Chun próifíliú cineáil, cuireann ZJIT ailtireacht chlasaiceach JIT i bhfeidhm a úsáideann sonraí cineáil stairiúla carntha an ateangaire in ionad na teicníce Lazy Basic Block Versioning (LBBV) a úsáidtear in YJIT.

Trí IR ardleibhéil a úsáid, réiteofar na fadhbanna inscálaitheachta atá ag YJIT, leagfar an dúshraith le haghaidh cur i bhfeidhm tiomsú JIT il-leibhéil sa todhchaí, cumasófar optamuithe chun cinn (amhail imscaradh inlíne níos ionsaithí), agus déanfar é níos éasca an JIT a oiriúnú d'ardáin éagsúla. Trí fhilleadh ar mhúnla próifílithe cineáil traidisiúnta, bainfear castacht den chód agus ligfear do rannpháirtithe nua páirt a ghlacadh (mar thoradh ar úsáid LBBV ag YJIT, ní raibh an tionscadal le feiceáil ag rannpháirtithe eile agus níor forbraíodh é ach ag fostaithe Shopify).

Foinse: oscailtenet.ru

Add a comment