JIT at Interpreter

Anonim

JIT vs. Interpreter

Ang komprehensibong Lamang Sa Oras (kilala rin bilang dynamic translation o JIT) ay isang pamamaraan na ginagamit sa computing upang mapabuti ang kalidad ng pagganap ng runtime ng isang programa sa computer. Ito ang pagsasama ng dalawang ideya na natagpuan sa runtime environment: Bytecode compilation at dynamic compilation (na isang proseso na ginagamit ng ilang pagpapatupad ng programming language upang makakuha ng pagganap habang ang isang sistema ay nagsasagawa ng isang aksyon).

Ang isang interpreter ang pinaka-tumpak na naglalarawan sa pagpapatupad ng isang pagkilos sa pamamagitan ng isang programa sa computer. Mayroong ilang mga pagkakaiba-iba sa uri ng mga pagkilos na ang isang interpreter ay aktwal na nagsasagawa: Ito ay direktang nagsasagawa ng source code ng isang programa; isinasalin nito ang source code sa isang representasyon na isang mahusay na intermediate na representasyon, at pagkatapos executes ang sinabi code; executes ang precompiled code na na-imbak at nilikha ng isang tagatala na bahagi ng sistema ng interpreter.

Ang JIT ay may kakayahang pagsamahin ang mga bentahe na matatagpuan kapwa sa pagpapakahulugan at static (na masasabi nang maaga) na compilation. Bilang isang interpreter, ang JIT ay makapagpapabuti ng pagganap sa pamamagitan ng mga resulta ng pag-cache ng mga bloke ng code na isinalin - kumpara sa muling pagsusuri lamang sa bawat linya o operand sa code sa bawat oras na ito ay nangyayari (tulad ng sa interpreted na wika). Tulad ng static compiling code sa oras ng pag-unlad, ang JIT ay maaaring mag-recompile ng code kung ito ay natagpuan na ang pinaka-advantageous plano ng pagkilos. Gayundin, sa parehong ugat bilang static compilation, ang JIT ay may kakayahang ipatupad ang mga garantiya sa seguridad.

Tulad ng mga compiler, ang mga interprete ay may kapasidad na i-translate ang code. Parehong mga pangunahing pamamaraan ng pagpapatupad ng mga wika ng programming; gayunpaman, ang mga kategorya ng 'compiler' o 'interpreter' ay hindi naiiba (para sa kanilang dual role bilang mga tagasalin ng code). Ang pinaka-halata kawalan sa paggamit ng isang interpreter ay na sa sandaling ang code ay interpreted, ang programa ay hindi maaaring hindi magpatakbo ng mas mabagal kaysa kapag kino-compile ang code; gayunpaman, ito ay tumatagal ng mas kaunting oras upang bigyan ng kahulugan ang coding kaysa sa ginagawa nito upang itala at patakbuhin ito (lalo na may kaugnayan sa prototyping at pagsubok code).

Sa pangkalahatan, ang JIT ay nagbibigay ng mas mahusay na pagganap kaysa sa mga tagasalin, at, sa maraming mga kaso, ay nagbibigay ng mas mahusay na pagganap kaysa sa mga static na compiler. Ang kagalingan nito sa JIT, gayunpaman, ay hindi naka-block ito mula sa pagkakaroon ng ilang mga pangunahing disadvantages: May isang kaunting pagka-antala kapag nagsimula sa pag-execute ng isang application (isang side effect ng pagkuha ng oras upang i-load at sumulat ng libro bytecode). Sa huli ay bubuo ito ng mas mahusay na coding; gayunpaman, ang paunang pag-antala na likas sa paggawa nito ay magtataas sa kalidad ng coding.

Buod:

1. JIT ay isang pamamaraan na ginagamit upang mapabuti ang kalidad ng pagganap ng runtime sa isang runtime na kapaligiran; tinutukoy ng interpreter ang pagpapatupad ng isang pagkilos sa pamamagitan ng isang programa sa computer.

2. Pinagsasama ng JIT ang mga pakinabang ng interpretasyon at static compilation; maaaring isalin ng isang interpreter ang code tulad ng isang tagatala, ngunit sa kapinsalaan ng bilis ng programa.