JIT vs. Tłumacz
Kompilacja Just In Time (znana również jako tłumaczenie dynamiczne lub JIT) jest techniką stosowaną w komputerach w celu poprawy jakości wydajności środowiska wykonawczego programu komputerowego. Jest to połączenie dwóch pomysłów znalezionych w środowiskach wykonawczych: kompilacji kodu bajtowego i kompilacji dynamicznej (który jest procesem używanym przez niektóre implementacje języka programowania w celu zwiększenia wydajności, gdy system wykonuje akcję).
Tłumacz najdokładniej opisuje wykonanie akcji za pomocą programu komputerowego. Istnieje kilka odmian rodzaju działań, które faktycznie wykonuje interpreter: Wykonuje bezpośrednio kod źródłowy programu; tłumaczy kod źródłowy na reprezentację, która jest wydajną reprezentacją pośrednią, a następnie wykonuje wspomniany kod; wykonuje wstępnie skompilowany kod, który został zapisany i utworzony przez kompilator będący częścią systemu tłumacza.
JIT może łączyć zalety zarówno interpretacji, jak i kompilacji statycznej (to znaczy z wyprzedzeniem). Jako interpreter, JIT jest w stanie poprawić wydajność poprzez buforowanie wyników przetłumaczonych bloków kodu - w porównaniu do zwykłej ponownej oceny każdego wiersza lub argumentu w kodzie za każdym razem, gdy się pojawia (jak w języku interpretowanym). Podobnie jak statyczny kod kompilujący w momencie programowania, JIT jest w stanie ponownie skompilować kod, jeśli okaże się, że jest to najbardziej korzystny plan działania. Ponadto, podobnie jak kompilacja statyczna, JIT może egzekwować gwarancje bezpieczeństwa.
Tłumacze, podobnie jak kompilatory, potrafią tłumaczyć kod. Oba są podstawowymi metodami wdrażania języków programowania; kategorie „kompilatora” lub „tłumacza” nie są jednak odrębne (ze względu na ich podwójną rolę jako tłumaczy kodu). Najbardziej oczywistą wadą korzystania z interpretera jest to, że po zinterpretowaniu kodu program nieuchronnie będzie działał wolniej niż podczas zwykłej kompilacji kodu; jednak interpretacja kodowania zajmuje znacznie mniej czasu niż kompilacja i uruchomienie (szczególnie istotne przy prototypowaniu i testowaniu kodu).
Ogólnie rzecz biorąc, JIT zapewnia znacznie lepszą wydajność niż tłumacze, aw wielu przypadkach zapewnia znacznie lepszą wydajność niż kompilatory statyczne. Jego przewaga nad JIT nie wyklucza jednak pewnych poważnych wad: Występuje niewielkie opóźnienie przy pierwszym uruchomieniu aplikacji (efekt uboczny polegający na wczytywaniu i kompilowaniu kodu bajtowego). W końcu wygeneruje lepsze kodowanie; jednakże początkowe opóźnienie związane z tym postępowaniem wzrośnie wraz z jakością kodowania.
Streszczenie:
1. JIT jest techniką stosowaną do poprawy jakości działania środowiska wykonawczego w środowisku wykonawczym; interpreter określa wykonanie akcji za pomocą programu komputerowego.
2. JIT łączy zalety interpretacji i kompilacji statycznej; interpreter może tłumaczyć kod tak jak kompilator, ale ze szkodą dla szybkości programu.