JIT vs. tlmočník
Kompilácia Just In Time (tiež známa ako dynamický preklad alebo JIT) je technika používaná pri výpočtoch na zlepšenie kvality výkonu počítačového programu za behu. Je to zlúčenie dvoch myšlienok nájdených v runtime prostrediach: kompilácia bytecode a dynamická kompilácia (čo je proces, ktorý používajú niektoré implementácie programovacieho jazyka na získanie výkonu, keď systém vykonáva akciu).
Tlmočník najpresnejšie opisuje vykonanie akcie prostredníctvom počítačového programu. Existuje niekoľko variácií o druhu akcií, ktoré tlmočník skutočne vykoná: priamo vykoná zdrojový kód programu; prevádza zdrojový kód do reprezentácie, ktorá je účinnou strednou reprezentáciou, a potom vykoná uvedený kód; vykonáva predkompilovaný kód, ktorý bol uložený a vytvorený kompilátorom, ktorý je súčasťou systému tlmočníka.
JIT má schopnosť kombinovať výhody zistené pri interpretácii a statickom (to znamená vopred) kompilácii. Ako tlmočník je JIT schopný zlepšiť výkon prostredníctvom výsledkov ukladania do pamäte cache preložených kódov - v porovnaní s jednoduchým prehodnotením každého riadku alebo operandu v kóde zakaždým, keď sa vyskytne (ako v interpretovanom jazyku). Rovnako ako statický kompilátorový kód v čase vývoja, JIT je schopný rekompilovať kód, ak sa zistí, že je to najvýhodnejší akčný plán. V rovnakom duchu ako statická kompilácia je JIT tiež schopná vymáhať bezpečnostné záruky.
Rovnako ako kompilátori, aj tlmočníci majú kapacitu na preklad kódu. Obidva sú hlavnými metódami implementácie programovacích jazykov; kategórie „prekladača“ alebo „tlmočníka“ však nie sú odlišné (pre ich duálne úlohy ako prekladatelia kódu). Najviditeľnejšou nevýhodou použitia tlmočníka je to, že po interpretácii kódu bude program nevyhnutne bežať pomalšie ako pri jednoduchom prekladaní kódu; interpretácia kódovania však trvá oveľa menej času ako jej kompilácia a spustenie (najmä pri prototypovaní a testovaní kódu).
Všeobecne možno povedať, že JIT poskytuje oveľa lepší výkon ako tlmočníci av mnohých prípadoch poskytuje oveľa lepší výkon ako statické kompilátory. Jeho nadradenosť nad JIT ho však nezakazuje mať niektoré hlavné nevýhody: Pri počiatočnom spustení aplikácie existuje mierne oneskorenie (vedľajší účinok, ktorý vyžaduje načítanie a kompilovanie bajtkódu). Nakoniec vygeneruje lepšie kódovanie; počiatočné oneskorenie spojené s týmto postupom sa však s kvalitou kódovania zvýši.
Zhrnutie:
1. JIT je technika používaná na zlepšenie kvality výkonu runtime v runtime prostredí; tlmočník definuje vykonanie akcie prostredníctvom počítačového programu.
2. JIT spája výhody interpretácie a statického zostavovania; tlmočník dokáže prekladať kód rovnako ako kompilátor, ale na úkor rýchlosti programu.