Just-in-time compilation (original) (raw)
Just-in-time-Kompilierung (JIT-Kompilierung) ist ein Verfahren aus der praktischen Informatik, um (Teil-)Programme zur Laufzeit in Maschinencode zu übersetzen. Ziel ist es dabei, die Ausführungsgeschwindigkeit gegenüber einem Interpreter zu steigern. JIT-Compiler kommen meist im Rahmen einer virtuellen Maschine zum Einsatz, wo Plattform-unabhängiger Bytecode ausgeführt werden soll. Just in time bedeutet in diesem Kontext „termingerecht“, „bei Bedarf“ (analog zur Just-in-time-Produktion).
Property | Value |
---|---|
dbo:abstract | JIT (akronym pro Just In Time) je v informatice označení pro speciální metodu překladu využívající různé techniky pro urychlení běhu programů přeložených do mezikódu (např. CIL). Používá se například pro programovací jazyk Java. Program, který je spuštěn a prováděn, je v době provádění přeložen přímo do nativního strojového kódu počítače, na kterém je prováděn, čímž dochází k urychlení jeho běhu. Negativem této techniky je prodleva, kterou JIT kompilátor (nikoli interpret) stráví překladem do nativního kódu, a proto se do nativního kódu často překládají jen mnohokrát (řádově 10 000×) volané úseky programu. Hlavním problémem JIT je, že má málo času na provedení své práce. Tyto nevýhody lze eliminovat použitím trvalé cache. Naopak výhodou je, že je možné lépe optimalizovat pro daný procesor a využít jeho rozšířených instrukcí. (cs) الترجمة في الوقت المناسب تسمى أيضًا »الترجمة الديناميكية أو الترجمة في وقت التنفيذ« في الحوسبة، هي طريقة لتنفيذ شيفرة برمجية -تعليمات برمجية- حاسوبية تشمل الترجمة أثناء الوقت الذي يُنفذ فيه البرنامج، بدلًا من أن يكون سابقًا للتنفيذ. يتضمن ذلك في معظم الأحيان ترجمة شيفرة مصدرية أو شيفرة من البايتات إلى الشيفرة التي تفهمها الآلة، وتُنفذ بعد ترجمتها مباشرةً. يحلل النظام الذي ينفذ الترجمة الشيفرة البرمجية التي تُنفَّذ بشكل مستمر، ويحدد الأجزاء من الشيفرة التي تزيد سرعتها في الترجمة. الترجمة في الوقت المناسب هي مزيج من النهجين التقليديين للترجمة إلى شيفرة الآلة، وهما الترجمة المسبقة (AOT)، والترجمة التفسيرية، ولكل منهما مزايا وعيوب. تجمع «الترجمة في الوقت المناسب» بين سرعة الشيفرة المترجمة ومرونة تفسير الترجمة، لكنها تتطلب مترجمًا وأعباء إضافية في التجميع والتحويل «وليس فقط التفسير». الترجمة في الوقت المناسب هي أحد أشكال الترجمة الديناميكية، وتتيح تطبيق التحسينات التكيفية مثل إعادة الترجمة الديناميكية وزيادة سرعات تعليمات برمجية محددة، بالتالي نظريًا يمكن أن توفر «الترجمة في الوقت المناسب» تنفيذًا أسرع من الترجمة الديناميكية. يُعد كل من تفسير الترجمة و«الترجمة في الوقت المناسب» مناسبين للغات البرمجة الديناميكية، إذ يمكن لنظام الزمن التشغيلي أن يتعامل مع أنماط البيانات ذات الربط المتأخر ويفرض ضمانات أمنية. (ar) En informática, la compilación en tiempo de ejecución (también conocida por sus siglas inglesas, JIT, just-in-time), también conocida como traducción dinámica, es una técnica para mejorar el rendimiento de sistemas de programación que compilan a bytecode, consistente en traducir el bytecode a código máquina nativo en tiempo de ejecución. La compilación en tiempo de ejecución se construye a partir de dos ideas anteriores relacionadas con los entornos de ejecución: la compilación a bytecode y la compilación dinámica. En un sistema que use interpretación de bytecode como por ejemplo Smalltalk, Perl, GNU CLISP o las primeras versiones de Java, el código fuente es traducido a un código intermedio llamado bytecode. El bytecode no es el código máquina de ninguna computadora en particular, y puede por tanto ser portable entre diferentes arquitecturas. El bytecode es entonces interpretado, o ejecutado por una máquina virtual. Un entorno con compilación dinámica es aquel en el que el compilador puede ser usado durante la ejecución. Por ejemplo, la mayoría de los sistemas tienen una función compile que permite compilar nuevas funciones creadas durante la ejecución del programa. Aunque ventajoso en la depuración interactiva, la compilación dinámica es menos útil en un sistema en explotación desatendido. Ese método es más común en emuladores modernos y frecuentemente comerciales que requieren mucha velocidad, como el Qemu y el (PC) o el Executor (Macintosh 68k). En un entorno de compilación en tiempo de ejecución, la compilación a bytecode es el primer paso, reduciendo el código fuente a una representación intermedia portable y optimizable. El bytecode se despliega en el sistema de destino. Cuando dicho código se ejecuta, el compilador en tiempo de ejecución lo traduce a código máquina nativo. Esto puede realizarse a nivel de fichero (programa) o de funciones, compilándose en este último caso el código correspondiente a una función justo cuando va a ejecutarse (de aquí el nombre de just-in-time, «justo a tiempo»). El objetivo es combinar muchas de las ventajas de la compilación a código nativo y a bytecode: la mayoría del «trabajo pesado» de procesar el código fuente original y realizar optimizaciones básicas se realiza en el momento de compilar a bytecode, mucho antes del despliegue: así, la compilación a código máquina del programa resulta mucho más rápida que partiendo del código fuente. El bytecode desplegado es portable, a diferencia del código máquina para cualquier arquitectura concreta. Los compiladores dinámicos son más fáciles de escribir, pues el compilador a bytecode ya realiza buena parte del trabajo. (es) Just-in-time-Kompilierung (JIT-Kompilierung) ist ein Verfahren aus der praktischen Informatik, um (Teil-)Programme zur Laufzeit in Maschinencode zu übersetzen. Ziel ist es dabei, die Ausführungsgeschwindigkeit gegenüber einem Interpreter zu steigern. JIT-Compiler kommen meist im Rahmen einer virtuellen Maschine zum Einsatz, wo Plattform-unabhängiger Bytecode ausgeführt werden soll. Just in time bedeutet in diesem Kontext „termingerecht“, „bei Bedarf“ (analog zur Just-in-time-Produktion). (de) In computing, just-in-time (JIT) compilation (also dynamic translation or run-time compilations) is a way of executing computer code that involves compilation during execution of a program (at run time) rather than before execution. This may consist of source code translation but is more commonly bytecode translation to machine code, which is then executed directly. A system implementing a JIT compiler typically continuously analyses the code being executed and identifies parts of the code where the speedup gained from compilation or recompilation would outweigh the overhead of compiling that code. JIT compilation is a combination of the two traditional approaches to translation to machine code—ahead-of-time compilation (AOT), and interpretation—and combines some advantages and drawbacks of both. Roughly, JIT compilation combines the speed of compiled code with the flexibility of interpretation, with the overhead of an interpreter and the additional overhead of compiling and linking (not just interpreting). JIT compilation is a form of dynamic compilation, and allows adaptive optimization such as dynamic recompilation and microarchitecture-specific speedups. Interpretation and JIT compilation are particularly suited for dynamic programming languages, as the runtime system can handle late-bound data types and enforce security guarantees. (en) La compilation à la volée (aussi connue sous les noms de traduction dynamique, compilation juste-à-temps ou compilation JAT ; en anglais, just-in-time compilation ou JIT compilation), en programmation informatique, est une technique visant à améliorer la performance de systèmes bytecode-compilés par la traduction de bytecode en code machine natif au moment de l'exécution. La compilation à la volée se fonde sur deux anciennes idées : la et la . (fr) Dalam komputasi, kompilasi tepat waktu atau just-in-time compilation (JIT), juga dikenal sebagai terjemahan dinamis adalah kompilasi yang dilakukan pada saat mengeksekusi sebuah program, bukannya sebelum mengeksekusi. Istilah ini umumnya mengacu pada penerjemahan kode mesin, yang kemudian dieksekusi secara langsung, tetapi juga bisa mengacu pada penerjemahan format lainnya. Kompilasi JIT adalah kombinasi dari dua pendekatan tradisional dalam penerjemahan kode mesin, yakni dan interpretasi, dan menggabungkan kelebihan dan kekurangan dari kedua pendekatan tersebut. Secara kasar, kompilasi JIT menggabungkan kecepatan kode kompiler dengan fleksibilitas interpretasi, serta kemampuan interpreter dan kemampuan kompiler (tidak hanya menginterpretasi, tetapi menerjemahkan). Kompilasi JIT adalah bentuk , dan memungkinkan dilakukannya seperti , sehingga menurut prinsipnya, kompilasi JIT bisa membuat eksekusi jadi lebih cepat jika dibandingkan dengan kompilasi statis. Interpretasi dan kompilasi JIT sangat cocok bagi bahasa pemrograman dinamis, karena sistem seperti ini bisa menangani data terikat dan menciptakan jaminan keamanan. (in) 実行時コンパイラ(じっこうじコンパイラ、Just-In-Time Compiler、JITコンパイラ、その都度のコンパイラ)とは、ソフトウェアの実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラのこと。通常のコンパイラはソースコード(あるいは中間コード)から対象CPUの機械語への変換を実行前に事前に行い、これをJITと対比して事前コンパイラ (Ahead-Of-Timeコンパイラ、AOTコンパイラ)と呼ぶ。 (ja) Un compilatore just-in-time o JIT permette un tipo di compilazione, conosciuta anche come traduzione dinamica, effettuata durante l'esecuzione del programma piuttosto che precedentemente. L'obiettivo finale è combinare i vantaggi della compilazione del bytecode a quelli della , aumentando le prestazioni quasi al pari di una compilazione direttamente in linguaggio macchina. (it) JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. 전통적인 입장에서 컴퓨터 프로그램을 만드는 방법은 두 가지가 있는데, 인터프리트 방식과 정적 컴파일 방식으로 나눌 수 있다. 이 중 인터프리트 방식은 실행 중 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행하며, 반면 정적 컴파일은 실행하기 전에 프로그램 코드를 기계어로 번역한다. JIT 컴파일러는 두 가지의 방식을 혼합한 방식으로 생각할 수 있는데, 실행 시점에서 인터프리트 방식으로 기계어 코드를 생성하면서 그 코드를 캐싱하여, 같은 함수가 여러 번 불릴 때 매번 기계어 코드를 생성하는 것을 방지한다. 최근의 자바 가상 머신과 .NET, V8(node.js)에서는 JIT 컴파일을 지원한다. 즉, 자바 컴파일러가 자바 프로그램 코드를 바이트코드로 변환한 다음, 실제 바이트코드를 실행하는 시점에서 자바 가상 머신이 바이트코드를 JIT 컴파일을 통해 기계어로 변환한다. (ko) Em Ciência da Computação, compilação just-in-time (JIT), também conhecida como tradução dinâmica, é a compilação de um programa em tempo de execução , usando uma abordagem diferente da compilação anterior à execução. Geralmente, consiste em transformar o código em código de máquina, que é então executado diretamente, mas também pode se referir a tradução para outros formatos. A compilação JIT é uma combinação de duas abordagens tradicionais de tradução para código de máquina: anterior à execução e durante a execução (interpretação), portanto combina algumas vantagens e desvantagens de ambas. A grosso modo, a compilação JIT combina a velocidade do código compilado à flexibilidade da interpretação, com o gargalo do interpretador e da compilação. A compilação dinâmica permite otimizações que não são possíveis em compilações estáticas, levando em alguns casos a códigos mais rápidos. (pt) JIT (ang. just-in-time compilation) – metoda wykonywania programów komputerowych polegająca na ich kompilacji do kodu maszynowego bezpośrednio przed wykonaniem danego fragmentu kodu. Cała procedura wygląda następująco: * kod źródłowy jest kompilowany do kodu pośredniego (bajtowego), * maszyna wirtualna przeprowadza kompilację kodu pośredniego do kodu maszynowego. Kompilacja może odbywać się w momencie pierwszego dostępu do kodu znajdującego się w pliku z programem lub pierwszego wywołania danej funkcji (stąd nazwa just-in-time). JIT jest bardzo obiecującą techniką uruchamiania programów niezależnych od architektury systemu komputerowego. Zaawansowane systemy JIT potrafią wykonywać programy szybciej niż interpretery, unikając jednocześnie komplikacji związanych z realizacją pełnego cyklu kompilacji, linkowania itd. Główną konkurencją dla techniki JIT jest popularna na systemach uniksowych metoda rozpowszechniania źródeł, które dopiero na docelowej maszynie zostają skompilowane. W metodzie rozpowszechniania źródeł, kompilacja pomimo tego, że trwa stosunkowo długo i jest skomplikowanym, a niekiedy zawodnym procesem, jest wykonywana tylko raz. W efekcie tego, że program jest skompilowany do poziomu kodu maszynowego, uzyskuje się z reguły większą wydajność działania programu wynikowego. JIT jest używany głównie przez maszyny wirtualne Javy oraz środowisko uruchomieniowe .NET CLR. (pl) Just-in-timecompilatie (JIT-compilatie) is een term uit de informatica waarmee een vorm van compilatie wordt bedoeld die plaatsvindt tijdens de uitvoering van een computerprogramma. Een gewone compiler vertaalt de broncode van een programma in zijn geheel naar machinetaal. Deze machinetaal kan vervolgens uitgevoerd of opgeslagen worden. Een interpreter daarentegen vertaalt de broncode niet naar machinetaal maar voert deze direct uit, of hij vertaalt de broncode naar een tussenvorm die vervolgens uitgevoerd wordt. Beide methodes, compilatie en interpretatie, hebben voordelen. Bij JIT-compilatie is het doel de voordelen van interpretatie en compilatie te combineren: * Gecompileerde programma's zijn snel. * Geïnterpreteerde programma's zijn meestal kleiner. * Geïnterpreteerde programma's zijn vaak geheel of gedeeltelijk platformonafhankelijk. * Tijdens de uitvoering van een programma heeft de interpreter toegang tot runtime-informatie op basis waarvan de uitvoering geoptimaliseerd kan worden: zo besteden veel programma's het grootste deel van de looptijd aan het herhaaldelijk uitvoeren van een klein gedeelte van de code. (nl) JIT-компиляция (англ. Just-in-Time, компиляция «точно в нужное время»), динамическая компиляция (англ. dynamic translation) — технология увеличения производительности программных систем, использующих байт-код, путём компиляции байт-кода в машинный код или в другой формат непосредственно во время работы программы. Таким образом достигается высокая скорость выполнения по сравнению с интерпретируемым байт-кодом (сравнимая с компилируемыми языками) за счёт увеличения потребления памяти (для хранения результатов компиляции) и затрат времени на компиляцию. Технология JIT базируется на двух более ранних идеях, касающихся среды выполнения: компиляции байт-кода и динамической компиляции. Так как JIT-компиляция является, по сути, одной из форм динамической компиляции, она позволяет применять такие технологии, как адаптивная оптимизация и . Благодаря этому JIT-компиляция может показывать лучшие результаты в плане производительности, чем статическая компиляция. Интерпретация и JIT-компиляция особенно хорошо подходят для динамических языков программирования, при этом среда исполнения справляется с поздним связыванием типов и гарантирует безопасность исполнения. Проекты LLVM, GNU Lightning, libJIT (часть проекта DotGNU) и RPython (часть проекта PyPy) могут быть использованы для создания JIT-интерпретаторов любого скриптового языка. (ru) Just-in-time compilation (JIT) (також відома як dynamic translation або run-time compilation) — компіляція «на льоту» — це технологія збільшення продуктивності програмних систем, що виконують програмний код, шляхом трансляції байт-коду в машинний код безпосередньо під час роботи програми. У такий спосіб досягається висока швидкість виконання за рахунок збільшення споживання пам'яті (для зберігання результатів компіляції) і витрат часу на компіляцію. JIT компіляція є комбінацією двох основних методів трансляції в машинний код, інтерпретації та статичної компіляції, та наслідує якості обох підходів: переваги швидкості скомпільованого коду та гнучкості інтерпретатора поєднані з накладними витратами інтерпретації та компіляції коду. JIT-компіляція є підвидом динамічної компіляції що дозволяє використання технік адаптивної оптимізації, таких як динамічна рекомпіляція, використання інтерпретатором мікроархітектурних оптимізацій. JIT-компіляція підходить для динамічних мов програмування, оскільки системи компіляції реального часу можуть сконструювати типи даних та гарантувати безпеку. (uk) 在计算机技术中,即时编译(英語:just-in-time compilation,缩写为JIT;又译及时编译、实时编译),也称为动态翻译或运行时编译,是一种执行计算机代码的方法,这种方法涉及在程序执行过程中(在執行期)而不是在执行之前进行编译。通常,这包括源代码或更常见的字节码到机器码的转换,然后直接执行。实现JIT编译器的系统通常会不断地分析正在执行的代码,并确定代码的某些部分,在这些部分中,编译或重新编译所获得的加速将超过编译该代码的开销。 JIT编译是两种传统的机器代码翻译方法——(AOT)和直譯器——的结合,它结合了两者的优点和缺点。大致来说,JIT编译,以解释器的开销以及编译和链接(解释之外)的开销,结合了编译代码的速度与解释的灵活性。JIT编译是動態編譯的一种形式,允许,比如动态重编译和特定于微架構的加速——因此,在理论上,JIT编译比静态编译能够产生更快的执行速度。解释和JIT编译特别适合于动态编程语言,因为运行时系统可以处理的数据类型并实施安全保证。 (zh) |
dbo:wikiPageExternalLink | http://software.intel.com/sites/products/documentation/hpc/vtune/windows/jit_profiling.pdf https://web.archive.org/web/20020905042721/http:/foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi%3Fjust-in-time https://web.archive.org/web/20120509215101/https:/developer.mozilla.org/En/Nanojit https://developer.mozilla.org/En/Nanojit |
dbo:wikiPageID | 220632 (xsd:integer) |
dbo:wikiPageLength | 27116 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1124576287 (xsd:integer) |
dbo:wikiPageWikiLink | dbc:Emulation_software dbr:QED_(text_editor) dbr:Just_in_time_(business) dbc:Virtualization dbr:HotSpot_(virtual_machine) dbr:Regular_expression dbr:Visual_Studio_2005 dbr:Dynamic_compilation dbr:Inline_expansion dbr:Interpreter_(computing) dbr:JIT_spraying dbr:.NET dbr:.NET_Framework dbr:Common_Language_Runtime dbr:Compatible_Time-Sharing_System dbr:Compiler dbr:Run_time_(program_lifecycle_phase) dbr:GNU_Compiler_for_Java dbr:GNU_lightning dbr:Linux dbr:Lisp_(programming_language) dbr:Smalltalk dbr:Common_Intermediate_Language dbr:Compile_and_go_system dbr:Computer_code dbr:Computing dbr:Microarchitecture dbr:Profile-guided_optimization dbr:HotSpot dbr:Native_Image_Generator dbr:Ahead-of-time_compilation dbr:Heap_spraying dbr:Late_binding dbr:Linker_(computing) dbr:W^X dbr:Adaptive_optimization dbr:Dynamic_programming_language dbr:Dynamic_recompilation dbr:Excelsior_JET dbr:PHP dbr:Machine_code dbr:Source_code dbr:Transmeta_Crusoe dbr:Runtime_environment dbr:Harvard_architecture dbr:James_G._Mitchell dbr:Java_(programming_language) dbc:Compiler_construction dbr:John_McCarthy_(computer_scientist) dbr:Ken_Thompson dbr:LLVM dbr:Binary_translation dbr:Java_virtual_machine dbr:Bytecode dbr:Software_portability dbr:Punch_card dbr:Microsoft dbr:OVPsim dbr:Self-modifying_code dbr:Self_(programming_language) dbr:Pattern_matching dbr:Virtual_machine dbr:IBM_7094 dbr:SpiderMonkey_(JavaScript_engine) dbr:Executable_space_protection dbr:PA-8000 dbr:SSE2 dbr:Tracing_just-in-time_compilation dbr:Static_compilation dbr:Tamarin_(JavaScript_engine) dbr:Computer_security_exploit dbr:Microbenchmarks dbr:Proc._ACM_Program._Lang. |
dbp:date | 2012-05-09 (xsd:date) |
dbp:url | https://web.archive.org/web/20120509215101/https:/developer.mozilla.org/En/Nanojit |
dbp:wikiPageUsesTemplate | dbt:Cite_journal dbt:Harvtxt dbt:Portal dbt:Reflist dbt:Refn dbt:Sfn dbt:Short_description dbt:Unreferenced_section dbt:Webarchive dbt:Program_execution |
dcterms:subject | dbc:Emulation_software dbc:Virtualization dbc:Compiler_construction |
gold:hypernym | dbr:Compilation |
rdf:type | yago:WikicatCompilers yago:CausalAgent100007347 yago:Communicator109610660 yago:Compiler109946957 yago:LivingThing100004258 yago:Object100002684 yago:Organism100004475 yago:Person100007846 yago:PhysicalEntity100001930 yago:Writer110794014 yago:YagoLegalActor yago:YagoLegalActorGeo dbo:Album dbo:MusicGenre yago:Whole100003553 |
rdfs:comment | Just-in-time-Kompilierung (JIT-Kompilierung) ist ein Verfahren aus der praktischen Informatik, um (Teil-)Programme zur Laufzeit in Maschinencode zu übersetzen. Ziel ist es dabei, die Ausführungsgeschwindigkeit gegenüber einem Interpreter zu steigern. JIT-Compiler kommen meist im Rahmen einer virtuellen Maschine zum Einsatz, wo Plattform-unabhängiger Bytecode ausgeführt werden soll. Just in time bedeutet in diesem Kontext „termingerecht“, „bei Bedarf“ (analog zur Just-in-time-Produktion). (de) La compilation à la volée (aussi connue sous les noms de traduction dynamique, compilation juste-à-temps ou compilation JAT ; en anglais, just-in-time compilation ou JIT compilation), en programmation informatique, est une technique visant à améliorer la performance de systèmes bytecode-compilés par la traduction de bytecode en code machine natif au moment de l'exécution. La compilation à la volée se fonde sur deux anciennes idées : la et la . (fr) 実行時コンパイラ(じっこうじコンパイラ、Just-In-Time Compiler、JITコンパイラ、その都度のコンパイラ)とは、ソフトウェアの実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラのこと。通常のコンパイラはソースコード(あるいは中間コード)から対象CPUの機械語への変換を実行前に事前に行い、これをJITと対比して事前コンパイラ (Ahead-Of-Timeコンパイラ、AOTコンパイラ)と呼ぶ。 (ja) Un compilatore just-in-time o JIT permette un tipo di compilazione, conosciuta anche come traduzione dinamica, effettuata durante l'esecuzione del programma piuttosto che precedentemente. L'obiettivo finale è combinare i vantaggi della compilazione del bytecode a quelli della , aumentando le prestazioni quasi al pari di una compilazione direttamente in linguaggio macchina. (it) JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. 전통적인 입장에서 컴퓨터 프로그램을 만드는 방법은 두 가지가 있는데, 인터프리트 방식과 정적 컴파일 방식으로 나눌 수 있다. 이 중 인터프리트 방식은 실행 중 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행하며, 반면 정적 컴파일은 실행하기 전에 프로그램 코드를 기계어로 번역한다. JIT 컴파일러는 두 가지의 방식을 혼합한 방식으로 생각할 수 있는데, 실행 시점에서 인터프리트 방식으로 기계어 코드를 생성하면서 그 코드를 캐싱하여, 같은 함수가 여러 번 불릴 때 매번 기계어 코드를 생성하는 것을 방지한다. 최근의 자바 가상 머신과 .NET, V8(node.js)에서는 JIT 컴파일을 지원한다. 즉, 자바 컴파일러가 자바 프로그램 코드를 바이트코드로 변환한 다음, 실제 바이트코드를 실행하는 시점에서 자바 가상 머신이 바이트코드를 JIT 컴파일을 통해 기계어로 변환한다. (ko) 在计算机技术中,即时编译(英語:just-in-time compilation,缩写为JIT;又译及时编译、实时编译),也称为动态翻译或运行时编译,是一种执行计算机代码的方法,这种方法涉及在程序执行过程中(在執行期)而不是在执行之前进行编译。通常,这包括源代码或更常见的字节码到机器码的转换,然后直接执行。实现JIT编译器的系统通常会不断地分析正在执行的代码,并确定代码的某些部分,在这些部分中,编译或重新编译所获得的加速将超过编译该代码的开销。 JIT编译是两种传统的机器代码翻译方法——(AOT)和直譯器——的结合,它结合了两者的优点和缺点。大致来说,JIT编译,以解释器的开销以及编译和链接(解释之外)的开销,结合了编译代码的速度与解释的灵活性。JIT编译是動態編譯的一种形式,允许,比如动态重编译和特定于微架構的加速——因此,在理论上,JIT编译比静态编译能够产生更快的执行速度。解释和JIT编译特别适合于动态编程语言,因为运行时系统可以处理的数据类型并实施安全保证。 (zh) الترجمة في الوقت المناسب تسمى أيضًا »الترجمة الديناميكية أو الترجمة في وقت التنفيذ« في الحوسبة، هي طريقة لتنفيذ شيفرة برمجية -تعليمات برمجية- حاسوبية تشمل الترجمة أثناء الوقت الذي يُنفذ فيه البرنامج، بدلًا من أن يكون سابقًا للتنفيذ. يتضمن ذلك في معظم الأحيان ترجمة شيفرة مصدرية أو شيفرة من البايتات إلى الشيفرة التي تفهمها الآلة، وتُنفذ بعد ترجمتها مباشرةً. يحلل النظام الذي ينفذ الترجمة الشيفرة البرمجية التي تُنفَّذ بشكل مستمر، ويحدد الأجزاء من الشيفرة التي تزيد سرعتها في الترجمة. (ar) JIT (akronym pro Just In Time) je v informatice označení pro speciální metodu překladu využívající různé techniky pro urychlení běhu programů přeložených do mezikódu (např. CIL). Používá se například pro programovací jazyk Java. Program, který je spuštěn a prováděn, je v době provádění přeložen přímo do nativního strojového kódu počítače, na kterém je prováděn, čímž dochází k urychlení jeho běhu. Negativem této techniky je prodleva, kterou JIT kompilátor (nikoli interpret) stráví překladem do nativního kódu, a proto se do nativního kódu často překládají jen mnohokrát (řádově 10 000×) volané úseky programu. Hlavním problémem JIT je, že má málo času na provedení své práce. Tyto nevýhody lze eliminovat použitím trvalé cache. Naopak výhodou je, že je možné lépe optimalizovat pro daný procesor (cs) En informática, la compilación en tiempo de ejecución (también conocida por sus siglas inglesas, JIT, just-in-time), también conocida como traducción dinámica, es una técnica para mejorar el rendimiento de sistemas de programación que compilan a bytecode, consistente en traducir el bytecode a código máquina nativo en tiempo de ejecución. La compilación en tiempo de ejecución se construye a partir de dos ideas anteriores relacionadas con los entornos de ejecución: la compilación a bytecode y la compilación dinámica. (es) In computing, just-in-time (JIT) compilation (also dynamic translation or run-time compilations) is a way of executing computer code that involves compilation during execution of a program (at run time) rather than before execution. This may consist of source code translation but is more commonly bytecode translation to machine code, which is then executed directly. A system implementing a JIT compiler typically continuously analyses the code being executed and identifies parts of the code where the speedup gained from compilation or recompilation would outweigh the overhead of compiling that code. (en) Dalam komputasi, kompilasi tepat waktu atau just-in-time compilation (JIT), juga dikenal sebagai terjemahan dinamis adalah kompilasi yang dilakukan pada saat mengeksekusi sebuah program, bukannya sebelum mengeksekusi. Istilah ini umumnya mengacu pada penerjemahan kode mesin, yang kemudian dieksekusi secara langsung, tetapi juga bisa mengacu pada penerjemahan format lainnya. (in) Just-in-timecompilatie (JIT-compilatie) is een term uit de informatica waarmee een vorm van compilatie wordt bedoeld die plaatsvindt tijdens de uitvoering van een computerprogramma. Een gewone compiler vertaalt de broncode van een programma in zijn geheel naar machinetaal. Deze machinetaal kan vervolgens uitgevoerd of opgeslagen worden. Een interpreter daarentegen vertaalt de broncode niet naar machinetaal maar voert deze direct uit, of hij vertaalt de broncode naar een tussenvorm die vervolgens uitgevoerd wordt. Beide methodes, compilatie en interpretatie, hebben voordelen. (nl) JIT (ang. just-in-time compilation) – metoda wykonywania programów komputerowych polegająca na ich kompilacji do kodu maszynowego bezpośrednio przed wykonaniem danego fragmentu kodu. Cała procedura wygląda następująco: * kod źródłowy jest kompilowany do kodu pośredniego (bajtowego), * maszyna wirtualna przeprowadza kompilację kodu pośredniego do kodu maszynowego. Kompilacja może odbywać się w momencie pierwszego dostępu do kodu znajdującego się w pliku z programem lub pierwszego wywołania danej funkcji (stąd nazwa just-in-time). (pl) JIT-компиляция (англ. Just-in-Time, компиляция «точно в нужное время»), динамическая компиляция (англ. dynamic translation) — технология увеличения производительности программных систем, использующих байт-код, путём компиляции байт-кода в машинный код или в другой формат непосредственно во время работы программы. Таким образом достигается высокая скорость выполнения по сравнению с интерпретируемым байт-кодом (сравнимая с компилируемыми языками) за счёт увеличения потребления памяти (для хранения результатов компиляции) и затрат времени на компиляцию. Технология JIT базируется на двух более ранних идеях, касающихся среды выполнения: компиляции байт-кода и динамической компиляции. (ru) Em Ciência da Computação, compilação just-in-time (JIT), também conhecida como tradução dinâmica, é a compilação de um programa em tempo de execução , usando uma abordagem diferente da compilação anterior à execução. Geralmente, consiste em transformar o código em código de máquina, que é então executado diretamente, mas também pode se referir a tradução para outros formatos. (pt) Just-in-time compilation (JIT) (також відома як dynamic translation або run-time compilation) — компіляція «на льоту» — це технологія збільшення продуктивності програмних систем, що виконують програмний код, шляхом трансляції байт-коду в машинний код безпосередньо під час роботи програми. У такий спосіб досягається висока швидкість виконання за рахунок збільшення споживання пам'яті (для зберігання результатів компіляції) і витрат часу на компіляцію. (uk) |
rdfs:label | ترجمة في الوقت المناسب (ar) Just-in-time kompilace (cs) Just-in-time-Kompilierung (de) Compilación en tiempo de ejecución (es) Kompilasi tepat waktu (in) Compilatore just-in-time (it) Just-in-time compilation (en) Compilation à la volée (fr) 実行時コンパイラ (ja) JIT 컴파일 (ko) JIT (informatyka) (pl) Just-in-timecompilatie (nl) JIT (pt) JIT-компиляция (ru) JIT-компіляція (uk) 即時編譯 (zh) |
owl:sameAs | freebase:Just-in-time compilation yago-res:Just-in-time compilation wikidata:Just-in-time compilation dbpedia-ar:Just-in-time compilation dbpedia-cs:Just-in-time compilation dbpedia-de:Just-in-time compilation dbpedia-es:Just-in-time compilation dbpedia-fa:Just-in-time compilation dbpedia-fi:Just-in-time compilation dbpedia-fr:Just-in-time compilation dbpedia-hu:Just-in-time compilation http://hy.dbpedia.org/resource/JIT_կոմպիլյացիա dbpedia-id:Just-in-time compilation dbpedia-it:Just-in-time compilation dbpedia-ja:Just-in-time compilation dbpedia-ko:Just-in-time compilation dbpedia-ms:Just-in-time compilation dbpedia-nl:Just-in-time compilation dbpedia-no:Just-in-time compilation dbpedia-pl:Just-in-time compilation dbpedia-pt:Just-in-time compilation dbpedia-ru:Just-in-time compilation dbpedia-sl:Just-in-time compilation dbpedia-tr:Just-in-time compilation dbpedia-uk:Just-in-time compilation dbpedia-zh:Just-in-time compilation https://global.dbpedia.org/id/ALgo |
prov:wasDerivedFrom | wikipedia-en:Just-in-time_compilation?oldid=1124576287&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Just-in-time_compilation |
is dbo:genre of | dbr:Psyco dbr:GNU_lightning |
is dbo:knownFor of | dbr:Urs_Hölzle |
is dbo:wikiPageDisambiguates of | dbr:JIT |
is dbo:wikiPageRedirects of | dbr:Just-In-Time_compilation dbr:Just-in-Time_Compilation dbr:Just_in_time_compilation dbr:Dynamo_project dbr:Run-time_compiler dbr:Runtime_compiler dbr:JIT-compilation dbr:JIT_(computing) dbr:JIT_compilation dbr:JIT_compiler dbr:Dynamic_translator dbr:Just-in-time_compiler dbr:Just-in-time_compiling dbr:Just_In_Time_Programming dbr:Just_In_Time_compilation dbr:Just_in_time_compiler |
is dbo:wikiPageWikiLink of | dbr:Caldera_International dbr:AmigaOS_4_version_history dbr:Program_optimization dbr:Psyco dbr:Pure_(programming_language) dbr:PyPy dbr:Python_(programming_language) dbr:Ruby_(programming_language) dbr:Scala_(programming_language) dbr:List_of_computing_and_IT_abbreviations dbr:Windows_API dbr:Just-In-Time_compilation dbr:Just-in-Time_Compilation dbr:Just_in_time_compilation dbr:Befunge dbr:Berkeley_Packet_Filter dbr:Blisk_(browser) dbr:Algorithmic_efficiency dbr:History_of_general-purpose_CPUs dbr:History_of_the_World_Wide_Web dbr:HotSpot_(virtual_machine) dbr:HyperTalk dbr:Julia_(programming_language) dbr:List_of_ECMAScript_engines dbr:List_of_compilers dbr:List_of_educational_programming_languages dbr:PeachPie dbr:PearPC dbr:Phalanger_(compiler) dbr:Pharo dbr:Regular_expression dbr:Rhino_(JavaScript_engine) dbr:V8_(JavaScript_engine) dbr:VisualWorks dbr:Visual_Basic_.NET dbr:Visual_Studio dbr:Dead-code_elimination dbr:Dynamic_compilation dbr:Interpreter_(computing) dbr:Interprocedural_optimization dbr:JIT_spraying dbr:List_of_numerical-analysis_software dbr:List_of_programming_languages_by_type dbr:JIT dbr:.NET_Compact_Framework dbr:.NET_Framework_version_history dbr:Common_Language_Runtime dbr:Comparison_of_C_Sharp_and_Java dbr:Comparison_of_Java_and_C++ dbr:Compiler dbr:SPIM dbr:SableVM dbr:Thomas_Neumann dbr:Quaject dbr:Chris_Lattner dbr:Citra_(emulator) dbr:Emscripten dbr:GNU_Guile dbr:GNU_lightning dbr:Gambas dbr:Golo_(programming_language) dbr:Google_Chrome dbr:Google_JAX dbr:GraalVM dbr:Bounds-checking_elimination dbr:Branch_table dbr:Modified_Harvard_architecture dbr:Mono_(software) dbr:Mozilla dbr:Control_table dbr:Core_Image dbr:Cross-platform_software dbr:Dalvik_(software) dbr:Andreas_Gal dbr:Android_KitKat dbr:Android_Lollipop dbr:Android_version_history dbr:List_of_.NET_libraries_and_frameworks dbr:Lua_(programming_language) dbr:MacRuby dbr:Calculus_of_concepts dbr:Common_Intermediate_Language dbr:Comparison_of_Java_virtual_machines dbr:Comparison_of_application_virtualization_software dbr:Compile_time dbr:Compiled_language dbr:Emulation_on_the_Amiga dbr:Fault_tolerance dbr:P-code_machine dbr:PLEX_(programming_language) dbr:Pixel_Visual_Core dbr:Profile-guided_optimization dbr:Tagged_Deterministic_Finite_Automaton dbr:Native_Image_Generator dbr:Azul_Systems dbr:CHIP_(computer) dbr:CPython dbr:C_Sharp_(programming_language) dbr:Ahead-of-time_compilation dbr:Timeline_of_virtualization_development dbr:UAE_(emulator) dbr:WebAssembly dbr:WebKit dbr:Code_generation dbr:Late_binding dbr:List_of_CLI_languages dbr:W^X dbr:ARM_architecture_family dbr:ARMulator dbr:ASP.NET_Web_Forms dbr:ActionScript dbr:Adaptive_optimization dbr:Alice_(programming_language) dbr:AmigaOS_4 dbr:Curl_(programming_language) dbr:CyanogenMod dbr:Da_Vinci_Machine dbr:Dynamic_recompilation dbr:ECMAScript dbr:ELKI dbr:Excelsior_JET dbr:Features_new_to_Windows_11 dbr:Fiji_(software) dbr:Flutter_(software) dbr:Node.js dbr:Numba dbr:PCSX2 dbr:PHP dbr:PPSSPP dbr:Fat_binary dbr:Foreign_function_interface dbr:List_of_GNU_packages dbr:List_of_JVM_languages dbr:List_of_Mozilla_products dbr:List_of_Nintendo_development_teams dbr:List_of_Python_software dbr:Profiling_(computer_programming) dbr:Quark_(kernel) dbr:2016_Cyber_Grand_Challenge dbr:HHVM dbr:Higher-order_function dbr:HipHop_for_PHP dbr:Internet_Explorer_9 dbr:Intrinsic_function dbr:IronPython dbr:JRuby dbr:JavaScript dbr:Java_(programming_language) dbr:Java_(software_platform) dbr:Java_Native_Interface dbr:Java_version_history dbr:Tamarin_(software) dbr:TempleOS dbr:TenFourFox dbr:Dynamo_project dbr:AssemblyScript dbr:ARM_Cortex-A15 dbr:Chakra_(JScript_engine) dbr:Kaffe dbr:L._Peter_Deutsch dbr:LLDB_(debugger) dbr:LLVM dbr:LV2 dbr:Lasso_(programming_language) dbr:Binary-code_compatibility dbr:Binary_translation dbr:SuperWaba dbr:Code_generation_(compiler) dbr:Code_morphing dbr:Heterogeneous_System_Architecture dbr:High-level_language_computer_architecture dbr:High-level_programming_language dbr:JavaScript_engine dbr:Java_applet dbr:Java_compiler dbr:Java_performance dbr:Java_virtual_machine dbr:Jazelle dbr:Modular_programming dbr:Threaded_code dbr:DigitaOS dbr:DotGNU dbr:Aspect_weaver dbr:Bytecode dbr:Pin_(computer_program) dbr:Software_cracking dbr:Spectre_(security_vulnerability) dbr:SpiderMonkey dbr:Final_(Java) dbr:IcedTea dbr:Instruction_set_architecture dbr:NetBSD dbr:Oberon-2 dbr:Object_Pascal dbr:Object_code_optimizer dbr:OpenCL dbr:OpenJ9 dbr:Optimizing_compiler dbr:Racket_(programming_language) dbr:Red_(programming_language) dbr:Self-modifying_code dbr:Self_(programming_language) dbr:X86 dbr:Xerox_Star dbr:Urs_Hölzle dbr:Loop_optimization dbr:Loop_unrolling dbr:Lossy_data_conversion dbr:Mac_OS_Runtime_for_Java dbr:Microsoft_Transaction_Server dbr:Virtual_machine dbr:Rosetta_(software) dbr:Runtime_system dbr:Semantic_dictionary_encoding dbr:Snippet_(programming) dbr:Valgrind dbr:Virtual_method_table dbr:Von_Neumann_architecture dbr:Windows_Advanced_Rasterization_Platform dbr:Type_inference dbr:Just_in_Time dbr:Programming_language dbr:Firefox_version_history dbr:PicoJava dbr:Stage3D dbr:Racket_features dbr:System_virtual_machine dbr:Programming_language_implementation dbr:Tracing_just-in-time_compilation dbr:Rob_Northen_copylock dbr:Run-time_compiler dbr:Runtime_compiler dbr:JIT-compilation dbr:JIT_(computing) dbr:JIT_compilation dbr:JIT_compiler dbr:Dynamic_translator dbr:Just-in-time_compiler dbr:Just-in-time_compiling dbr:Just_In_Time_Programming dbr:Just_In_Time_compilation dbr:Just_in_time_compiler |
is dbp:genre of | dbr:Psyco dbr:GNU_lightning |
is foaf:primaryTopic of | wikipedia-en:Just-in-time_compilation |