JIT protiv tumača
Kompilacija Just In Time (poznata i kao dinamički prijevod ili JIT) tehnika je koja se koristi za računanje radi poboljšanja kvalitete performansi računalnog programa tijekom izvođenja. To je objedinjavanje dviju ideja koje se nalaze u runtime okruženjima: komponiranje bajt kodova i dinamička kompilacija (što je postupak koji neke implementacije programskog jezika koriste kako bi postigle performanse dok sustav izvodi radnju).
Tumač najviše precizno opisuje izvršenje neke radnje putem računalnog programa. Postoji nekoliko varijacija o vrsti radnji koje interpreter stvarno izvršava: Izravno izvršava izvorni kod programa; prevodi izvorni kôd u predstavu koja je učinkovit posredni prikaz, a zatim izvršava navedeni kod; izvršava unaprijed sastavljeni kod koji je pohranio i stvorio prevodilac koji je dio interpretacijskog sustava.
JIT ima sposobnost kombiniranja prednosti koje se nalaze i u interpretaciji i u statičkoj (to jest prije vremena) kompilaciji. Kao tumač, JIT je u stanju poboljšati performanse pomoću predmemoriranja blokova koda koji su prevedeni - u usporedbi s jednostavno ponovnom ocjenom svakog retka ili operanda u kodu svaki put kada se pojavi (kao u tumačenom jeziku). Baš kao i statički kôd za sastavljanje u vrijeme razvoja, JIT je u mogućnosti ponovno sastaviti kod ako se utvrdi da je to najpovoljniji plan djelovanja. Također, na isti način kao i statička kompilacija, JIT je sposoban provesti sigurnosna jamstva.
Kao i prevoditelji, i prevoditelji mogu prevesti kod. Obje su primarne metode implementacije programskih jezika; međutim, kategorije „prevoditelja” ili „tumača” nisu različite (za njihove dvostruke uloge kao prevoditelji koda). Najočitiji nedostatak korištenja interpretera je taj što će se jednom kada se protumači kôd, program neizbježno pokretati sporije nego kod jednostavnog sastavljanja koda; međutim, za tumačenje kodiranja potrebno je puno manje vremena nego što je to potrebno za sastavljanje i pokretanje (posebno pri prepisivanju i testiranju koda).
Općenito govoreći, JIT pruža mnogo bolje performanse od tumača i, u mnogim slučajevima, pruža puno bolje performanse od statičkih prevodilaca. Njegova nadmoć nad JIT-om, međutim, ne sprječava ga da ima neke velike nedostatke: Postoji malo zakašnjenje prilikom početnog izvršavanja aplikacije (nuspojava uzimanja vremena za učitavanje i sastavljanje bajt kodova). Na kraju će stvoriti bolje kodiranje; međutim, početno kašnjenje koje je svojstveno tome povećat će se s kvalitetom kodiranja.
Sažetak:
1. JIT je tehnika koja se koristi za poboljšanje kvalitete izvedbe runtimea u runtime okruženju; tumač definira izvršenje radnje putem računalnog programa.
2. JIT kombinira prednosti interpretacije i statičke kompilacije; tumač može prevesti kod baš kao i prevoditelj, ali na štetu brzine programa.