JIT
Just-in-time compilation (JIT) (также известна как dynamic translation) — компиляция «на лету» — это технология увеличения производительности программных систем, использующих байт-код, путём трансляции байт-кода в машинный код непосредственно во время работы программы. Таким образом достигается высокая скорость выполнения (сравнимая с компилируемыми языками) за счёт увеличения потребления памяти (для хранения результатов компиляции) и затрат времени на компиляцию. JIT базируется на двух более ранних идеях, касающихся среды исполнения: компиляции байт-кода и динамической компиляции.
В языках, компилирующихся в байт-код, таких как Lua, Perl, GNU CLISP или Java, исходный код транслируется в одно из промежуточных представлений, известное как байт-код. Байт-код не является машинным кодом какого-либо компьютера и может портироваться на различные компьютерные архитектуры. Байт-код интерпретируется (исполняется) виртуальной машиной.
JIT используется в реализациях Java, Microsoft .NET. Языки Perl, Python и подобные имеют ограниченные или неполные JIT.
Проект DotGNU разрабатывает библиотеку libJIT, которая предоставляет возможность привести JIT в любой скриптовой язык. Проекты LLVM и GNU Lightning также могут быть использованы для создания JIT.
См. также AOT.
Видимо, впервые компиляция на лету была введена в реализациях динамического интерпретируемого языка Smalltalk.
Также большой интерес представляет диссертация, защищённая в 1994-м г. в Университете ETH (Швейцария, Цюрих) Михаэлем Францем "Динамическая кодогенерация - ключ к переносимому программному обеспечению" и реализованная им система Juice динамической кодогенерации из переносимого семантического дерева для языка Oberon. Система Juice предлагалась как плагин для Интернет-браузеров.
Ссылки
- DotGNU
- LLVM
- GNU Lightning
- LuaJIT
- libJIT Linear Scan, разрабатываемый Кириллом Кононенко
- Материалы научных сессий МИФИ 2006-2009 и других конференций
Программирование | Это незавершённая статья о программировании. Вы можете помочь проекту, исправив и дополнив её. |
ar:ترجمة في الوقت المناسب cs:JIT de:Just-in-time-Kompilierung en:Just-in-time compilation es:Compilación en tiempo de ejecución fi:Ajonaikainen kääntäminen fr:Compilation à la volée hu:Futásidejű fordítás it:Compilatore just-in-time ja:ジャストインタイムコンパイル方式 nl:Just-in-time compilatie pl:JIT (informatyka) pt:JIT sv:JIT-kompilator tr:JIT Derleyicisi zh:即時編譯
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....