JIT prieš vertėją
Kompiliacija „Just In Time“ (dar vadinama dinaminiu vertimu arba JIT) yra kompiuterijoje naudojama technika, siekiant pagerinti kompiuterio programos vykdymo kokybę. Tai yra dviejų idėjų, rastų vykdymo aplinkoje, sujungimas: baitų kodų kompiliavimas ir dinaminis kompiliavimas (tai procesas, kurį kai kurios programavimo kalbos diegimo programos naudoja siekdamos įgyti daugiau rezultatų, o sistema vykdo veiksmą)..
Vertėjas tiksliausiai apibūdina veiksmo vykdymą per kompiuterio programą. Yra keletas variantų, pagal kuriuos vertėjas iš tikrųjų vykdo veiksmus: Jis tiesiogiai vykdo programos šaltinį; jis išverčia šaltinio kodą į reprezentaciją, kuri yra efektyvi tarpinė reprezentacija, ir tada vykdo minėtą kodą; jis vykdo iš anksto sukompiliuotą kodą, kurį išsaugojo ir sukūrė kompiliatorius, kuris yra vertėjų sistemos dalis.
JIT geba derinti ir aiškinimo, ir statinio (tai yra prieš laiką) rinkimo pranašumus. Kaip vertėjas, JIT gali pagerinti našumą išsaugodamas išsaugotų kodų, išverstų iš blokų, rezultatus - palyginti su paprasčiausiomis kiekvienos kodo eilutės ar operando įvertinimu kaskart, kai tik jis įvyksta (kaip ir vertimo kalba). Kaip ir statinis kodo sudarymas kūrimo metu, JIT gali perkompiliuoti kodą, jei nustatoma, kad tai yra pats naudingiausias veiksmų planas. Taip pat, kaip ir statinis kompiliavimas, JIT gali įgyvendinti saugumo garantijas.
Kaip ir kompiliatoriai, vertėjai gali išversti kodą. Abu yra pagrindiniai programavimo kalbų diegimo metodai; tačiau „sudarytojo“ arba „vertėjo“ kategorijos nėra skirtingos (dėl dvigubų jų, kaip vertėjų, vaidmenų). Akivaizdžiausias trūkumas, naudojantis vertimu žodžiu, yra tas, kad kai tik kodas bus išaiškintas, programa neišvengiamai veiks lėčiau nei tiesiog surašant kodą; tačiau kodavimui interpretuoti reikia daug mažiau laiko, nei jo sudarymui ir vykdymui (ypač svarbu, kai atliekamas prototipų sudarymas ir testavimas).
Apskritai JIT teikia daug geresnį našumą nei vertėjai ir daugeliu atvejų teikia daug geresnį našumą nei statiniai kompiliatoriai. Tačiau jo pranašumas, palyginti su JIT, netrukdo patirti kai kurių pagrindinių trūkumų: Iš pradžių vykdant programą yra šiek tiek vėluojama (šalutinis poveikis, nes reikia laiko įkelti ir sudaryti baitų kodus). Tai ilgainiui sugeneruos geresnį kodavimą; tačiau pradinis delsimas, būdingas tai darant, didės kodavimo kokybei.
Santrauka:
1. JIT yra būdas, naudojamas pagerinti vykdymo laiko kokybę vykdymo aplinkoje; vertėjas apibrėžia veiksmo vykdymą per kompiuterio programą.
2. JIT derina aiškinimo ir statinio kompiliavimo pranašumus; vertėjas gali versti kodą taip, kaip kompiliatorius, tačiau tai daro žalą programos greičiui.