Разлика между JIT и преводач

JIT срещу преводач

Компилацията Just In Time (известна още като динамичен превод или JIT) е техника, използвана при изчисляване за подобряване на качеството на изпълнение на компютърна програма. Това е обединяването на две идеи, открити в средата на изпълнение: Компилация на байтови кодове и динамична компилация (което е процес, който някои реализации на езика за програмиране използват, за да получат производителност, докато системата изпълнява действие).

Преводач най-точно описва изпълнението на действие чрез компютърна програма. Има няколко вариации на типа действия, които всъщност превежда интерпретаторът: Той директно изпълнява изходния код на програма; той превежда изходния код в представителство, което е ефективно междинно представяне, и след това изпълнява споменатия код; той изпълнява предварително компилиран код, който е съхранен и създаден от компилатор, който е част от системата на преводача.

JIT има възможност да комбинира предимствата, открити както в интерпретацията, така и в статичната (тоест преди време) компилация. Като интерпретатор, JIT е в състояние да подобри производителността чрез кеширане на резултати от блокове от код, който е преведен - в сравнение с просто преоценка на всеки ред или операнд в кода всеки път, когато се появява (както на интерпретирания език). Точно като статичния код за компилиране по време на разработването, JIT е в състояние да прекомпилира кода, ако това се окаже най-изгодното действие. Освен това, в същото отношение като статичната компилация, JIT е в състояние да налага гаранции за сигурност.

Точно като компилаторите, интерпретаторите имат способността да превеждат код. И двете са основните методи за реализиране на езици за програмиране; обаче категориите „компилатор“ или „преводач“ не са разграничени (за техните двойни роли като преводачи на кодове). Най-очевидният недостатък на използването на интерпретатор е, че след като кодът се интерпретира, програмата неизбежно ще работи по-бавно, отколкото при просто компилиране на кода; за тълкуването на кодирането обаче е необходимо много по-малко време, отколкото при компилирането и стартирането му (особено уместно при прототипиране и тестване на код).

Най-общо JIT осигурява много по-добра производителност от интерпретаторите и в много случаи осигурява много по-добра производителност от статичните компилатори. Превъзходството му над JIT обаче не му пречи да има някои основни недостатъци: Има леко забавяне при първоначалното изпълнение на приложение (страничен ефект от отнемане на време за зареждане и компилиране на байтови кодове). В крайна сметка ще генерира по-добро кодиране; обаче първоначалното забавяне, присъщо на това, ще се увеличи с качеството на кодирането.

Резюме:

1. JIT е техника, използвана за подобряване на качеството на изпълнение на изпълнение в среда на изпълнение; преводач определя изпълнението на действие чрез компютърна програма.

2. JIT съчетава предимствата на интерпретацията и статичното компилиране; преводачът може да преведе код точно като компилатор, но в ущърб на скоростта на програмата.