JIT

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání

JIT je akronym anglického označení Just In Time, který označuje speciální metodu překladu využívající různé techniky pro urychlení běhu interpretovaných programů. Používá se např. v programovacím jazyku Java. Program, který je spuštěn a prováděn, může být interpretem v době provádění přeložen přímo do nativního strojového kódu počítače, na kterém je prováděn, čímž dochází k urychlení jeho provádění. Negativem této techniky je prodleva, kterou interpret stráví překladem do nativního kódu, a proto se do nativního kódu často překládají jen mnohokrát (řádově 10 000x) volané úseky programu. Hlavním problémem JIT je, že má málo času na provedení své práce. Tyto nevýhody lze eliminovat použitím trvalé cache. Naopak výhodou je, že je možné lépe optimalizovat pro daný procesor a využít jeho rozšířených instrukcí.

[editovat] Druhy JIT kompilátorů

  1. Překlad v době instalace – k přeložení dochází v době instalace aplikace či komponenty. Výhodou je odstranění zpoždění, které způsobuje samotný překlad. V tomto případě se už nejedná o Just In Time.
  2. Opravdový JIT překladač – před spuštěním aplikace dojde k překladu a optimalizaci. Výsledek je srovnatelný s konvenčním překladačem. Nevýhodou je poměrně velké zdržení před spuštěním aplikace.
  3. Ekonomický JIT překladač – provádí částečný překlad programu. Jsou překládány jen ty části, které potřebuje a optimalizační algoritmy jsou vypnuty. Co to přeloží si hned uschová. Hlavní výhodou je, že má menší nároky na paměť.

[editovat] Používané techniky

  • odstranění mrtvého kódu
  • vkládání těl metod
  • odstranění shodných podvýrazů
  • rozbalování smyček, ...