JIT vs. interpret
Compilația Just In Time (cunoscută și ca traducere dinamică sau JIT) este o tehnică folosită în calcul pentru a îmbunătăți calitatea performanțelor runtime ale unui program de calculator. Este amalgamarea a două idei găsite în mediile runtime: compilația Bytecode și compilația dinamică (care este un proces pe care unele implementări de limbaj de programare îl folosesc pentru a obține performanță în timp ce un sistem execută o acțiune).
Un interpret descrie cel mai bine executarea unei acțiuni prin intermediul unui program de calculator. Există câteva variații privind tipul de acțiuni pe care un interpret execută efectiv: execută direct codul sursă al unui program; traduce codul sursă într-o reprezentare care reprezintă o reprezentare intermediară eficientă și apoi execută codul menționat; execută un cod precompilat care a fost stocat și creat de un compilator care face parte din sistemul de interpreți.
JIT are capacitatea de a combina avantajele constatate atât în interpretare, cât și în compilația statică (adică înainte de timp). În calitate de interpret, JIT este capabil să îmbunătățească performanța prin cache-ul rezultatelor blocurilor de cod care au fost traduse - în comparație cu simpla reevaluare a fiecărei linii sau operand în cod de fiecare dată când apare (ca în limba interpretată). La fel ca codul static de compilare la momentul dezvoltării, JIT este capabil să recompileze codul dacă acesta se consideră a fi cel mai avantajos plan de acțiune. De asemenea, în aceeași manieră ca și compilația statică, JIT este capabilă să impună garanții de securitate.
La fel ca compilatorii, interpreții au capacitatea de a traduce codul. Ambele sunt metodele principale de implementare a limbajelor de programare; totuși, categoriile de "compilatoare" sau "interpreți" nu sunt distincte (pentru rolurile lor duale ca traducători de cod). Dezavantajul cel mai evident față de utilizarea unui interpret este că, odată ce codul este interpretat, programul se va desfășura inevitabil mai lent decât atunci când se compilează pur și simplu codul; totuși, este nevoie de mult mai puțin timp pentru a interpreta codificarea decât pentru a compila și a rula (mai ales pertinente atunci când codul de prototipuri și de testare).
În general, JIT oferă performanțe mult mai bune decât interpreții și, în multe cazuri, oferă performanțe mult mai bune decât compilatoarele statice. Superioritatea sa asupra JIT, cu toate acestea, nu îl împiedică să aibă unele dezavantaje majore: Există o mică întârziere atunci când executați inițial o aplicație (un efect secundar de a lua timp pentru a încărca și a compila bytecode). În cele din urmă va genera o codificare mai bună; totuși, întârzierea inițială inerentă în acest sens va crește cu calitatea codării.
Rezumat:
1. JIT este o tehnică utilizată pentru a îmbunătăți calitatea performanței runtime într-un mediu de execuție; un interpret definește executarea unei acțiuni printr-un program de calculator.
2. JIT combină avantajele interpretării și compilării statice; un interpret poate traduce codul ca un compilator, dar în detrimentul vitezei programului.