Różnica między JIT a tłumaczem

Różnica między JIT a tłumaczem

JIT vs. Interpretator

Kompilacja Just In Time (znana również jako Dynamic Translation lub JIT) to technika stosowana w obliczaniu w celu poprawy jakości wydajności programu wykonawczego programu komputerowego. Jest to połączenie dwóch pomysłów znalezionych w środowiskach środowisk wykonawczych: kompilacja bajtowa i kompilacja dynamiczna (która jest procesem, z którego korzystają niektóre implementacje języka programowania w celu uzyskania wydajności, podczas gdy system wykonuje akcję).

Interpreter najdokładniej opisuje wykonanie akcji za pośrednictwem programu komputerowego. Istnieje kilka odmian typu działań, które faktycznie wykonuje interpreter: wykonuje bezpośrednio kod źródłowy programu; Przekłada 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ł przechowywany i utworzony przez kompilatora, który jest częścią systemu interpretera.

JIT ma zdolność łączenia zalet znalezionych zarówno w interpretacji, jak i statycznej (to znaczy z wyprzedzeniem) kompilacji. Jako tłumacz JIT jest w stanie poprawić wydajność poprzez wyniki buforowania bloków kodu, które zostały przetłumaczone - w porównaniu do po prostu ponownej oceny każdej linii lub operandu w kodzie za każdym razem, gdy ma to miejsce (jak w języku interpretowanym). Podobnie jak statyczny kod kompilacji w momencie rozwoju, JIT jest w stanie ponownie skompilować kod, jeśli okazuje się, że jest to najbardziej korzystny plan działania. Ponadto, w tym samym stylu co kompilacja statyczna, JIT jest w stanie egzekwować gwarancje bezpieczeństwa.

Podobnie jak kompilatorzy, tłumacze mają zdolność do tłumaczenia kodu. Oba są głównymi metodami wdrażania języków programowania; Jednak kategorie „kompilatora” lub „interpretera” nie są odrębne (dla ich podwójnych ról jako tłumaczy kodu). Najbardziej oczywistą wadą korzystania z interpretera jest to, że po interpretacji kodu program nieuchronnie będzie działał wolniej niż po prostu kompilując kod; Jednak interpretacja kodowania zajmuje znacznie mniej czasu niż jego kompilacja i uruchomienie (szczególnie istotne podczas prototypowania i testowania kodu).

Ogólnie rzecz biorąc, JIT zapewnia znacznie lepszą wydajność niż tłumacze, aw wielu przypadkach zapewnia znacznie lepszą wydajność niż kompilatory statyczne. Jednak jego wyższość nad JIT nie zabezpiecza go od posiadania poważnych wad: występuje niewielkie opóźnienie przy początkowym wykonywaniu aplikacji (efekt uboczny poświęcenia czasu na załadowanie i skompilowanie bystry). Ostatecznie wygeneruje lepsze kodowanie; Jednak początkowe opóźnienie związane z tym, wzrośnie wraz z jakością kodowania.

Streszczenie:

1. JIT jest techniką stosowaną w celu poprawy jakości wydajności czasu wykonawczego w środowisku środowiska wykonawczego; Interpreter określa wykonanie akcji za pośrednictwem programu komputerowego.

2. JIT łączy zalety interpretacji i kompilacji statycznej; Interpreter może przetłumaczyć kod jak kompilator, ale ze szkodą dla prędkości programu.