Dynamická rekompilace - Dynamic recompilation

V informatice je dynamická rekompilace funkcí některých emulátorů a virtuálních počítačů , kde systém může během provádění překompilovat některou část programu . Kompilací během provádění může systém přizpůsobit generovaný kód tak, aby odrážel běhové prostředí programu, a potenciálně vytvářet efektivnější kód využíváním informací, které nejsou k dispozici tradičnímu statickému kompilátoru .

Využití

Většina dynamických rekompilátorů se používá k převodu strojového kódu mezi architekturami za běhu. To je úkol často potřebný při emulaci starších herních platforem. V ostatních případech může systém využívat dynamickou rekompilaci jako součást strategie adaptivní optimalizace k provedení reprezentace přenosného programu, jako jsou bajtové kódy Java nebo .NET Common Language Runtime . Ladicí programy s plnou rychlostí také využívají dynamickou rekompilaci, aby se snížila režie místa, která je způsobena většinou deoptimizačních technik, a další funkce, jako je dynamická migrace vláken .

Úkoly

Hlavní úkoly, které musí dynamický rekompiler provádět, jsou:

  • Čtení strojového kódu ze zdrojové platformy
  • Vysílání strojového kódu pro cílovou platformu

Dynamický rekompiler může také provádět některé pomocné úkoly:

  • Správa mezipaměti překompilovaného kódu
  • Aktualizace uplynulého počtu cyklů na platformách s registry počtu cyklů
  • Správa kontroly přerušení
  • Poskytování rozhraní virtualizovanému podpůrnému hardwaru, například GPU
  • Optimalizace struktur kódu vyšší úrovně pro efektivní provoz na cílovém hardwaru (viz níže)

Aplikace

Emulátory

Viz také

Reference

externí odkazy