Iyo itsva JIT compiler, ZJIT, yakawedzerwa kuRuby mutauro referenzi rekushandisa codebase uye yakaiswa sechizvarwa chinotevera cheRuby JIT. ZJIT ichaverengerwa mukuburitswa kukuru kunotevera kweRuby 3.5, uko ichave iripo senge sarudzo padivi peYJIT JIT compiler, uye inogona kuitsiva muRuby 3.6. Kufanana neYJIT, iyo itsva JIT compiler yakanyorwa muRust. Ose maviri ma JIT compilers akagadzirwa nechikwata chevagadziri paShopify sechikamu chedanho rekuvandudza mashandiro eRuby zvirongwa zvinoshandisa Rails framework uye kufona nzira dzakawanda.
Kusiyana neYJIT, iyo itsva JIT compiler haishandure YRV virtual muchina bytecode kuita yakaderera-level yepakati inomiririra (chaizvoizvo ingangoita yakananga muchina kodhi), asi inoshandura iyo bytecode kuita yepamusoro-yepakati inomiririra SSA (Static Single Assignment), pamusoro peimwe optimization nhanho inogona kuitwa uye optimization inogona kuitwa neyakakura kodhi pane ziso chete, pane hombe kodhi pane ziso chete.
ZJIT inoita kuunganidza nzira yese panguva, nepo YJIT yaingokwanisa kubata kuunganidzwa kwezvivharo zvekutanga. Pamhando yemhando, ZJIT inoshandisa chivakwa cheJIT chekare chinoshandisa muturikiri akaunganidzwa emhando yerudzi rwe data pachinzvimbo cheLazy Basic Block Versioning (LBBV) nzira inoshandiswa muYJIT.
Kushandisa yakakwira-level IR kuchagadzirisa nyaya dze scalability idzo YJIT inadzo, isa hwaro hwekushandisa mune ramangwana reakawanda-level JIT kuunganidzwa, kugonesa optimizations yepamusoro (sekunyanya hutsinye inline deployment), uye kuita kuti zvive nyore kugadzirisa JIT kumapuratifomu akasiyana. Kudzokera kune yechinyakare mhando yeprofiling modhi kunobvisa kuomarara kubva kukodhi uye kubvumidza vatsva vanotora kutora chikamu (YJIT mashandisiro eLBBV zvakakonzera kuti chirongwa ichi chisazivikanwe kune vamwe vanopa uye kugadzirwa chete nevashandi veShopify).
Source: opennet.ru
