即时编译 编辑
计算中,即时编译,也称为动态翻译或运行时编译,是一种执行计算机代码的方法,这种方法涉及在程序执行过程中而不是在执行之前进行编译器。通常,这包括源代码或更常见的字节码机器语言的转换,然后直接执行。实现JIT编译器的系统通常会不断地分析正在执行的代码,并确定代码的某些部分,在这些部分中,编译或重新编译所获得的加速将超过编译该代码的开销。
6
图片 0 图片
评论 0 评论
匿名用户 · [[ show_time(comment.timestamp) ]]
[[ nltobr(comment.content) ]]
相关
Textadept是一个为程序设计而设计的自由软件极简文本编辑器。它以MIT许可证发布,用C语言和Lua编写而成,并通过Lua进行扩展。 在终端窗口运行时,可以使用图形用户界面或文本用户界面。Textadept使用Scintilla编辑组件。Textadept的开发者把Textadept用到的Scintilla的curses包装库分离了出来供大家使用。 图形和终端类型都可选择使用LuaJIT进行即时编译。不再推荐使用JIT版本,因为JIT版本过去提供的速度优势在版本6.1之后不再显著。
Java编译器是Java编程语言的编译器。Java编译器最常见的生成文件是包含Java字节码的Java类文件。Java虚拟机加载Java类文件,并直译器或即时编译Java字节码为机器代码。
通用语言基础架构 中的程序集是编译得到的,供CLR进一步编译执行的代码库。代码是用通用中间语言表示,在运行时被即时编译为机器语言。在.NET Framework实现中,这种即时编译是通用语言运行时 的一部分。
动态编译是某些程式设计程式语言在执行时用来增进效能的方法。尽管这技术源于Self,但使用此技术最为人所知的是Java。此技术可以做到一些只在执行时才能完成的最佳化。使用动态编译的执行环境一开始执行速度较慢,之后,完成大部分的编译和再编译后,会执行得比非动态编译程式快很多。因为初始化时的效能延迟,动态编译不适用于一些情况。在许多实作中,一些可以在编译时期做的最佳化被延到执行时期才编译,导致不必要的效能降低。即时编译是一种动态编译的形式。
HipHop虚拟机是一个由Facebook开发的基于即时编译的开源虚拟机,它的源代码托管在GitHub上。HHVM能作为Hack编程语言的执行引擎,在HHVM第4版发布之前,它用于支持PHP的执行。通过JIT的编译,Hack代码首先被编译为中间HipHop字节码,然后再动态编译成X86-64机器语言以及进行优化并在本机执行。
HipHop虚拟机是一个由Facebook开发的基于即时编译的开源虚拟机,它的源代码托管在GitHub上。HHVM能作为Hack编程语言的执行引擎,在HHVM第4版发布之前,它用于支持PHP的执行。通过JIT的编译,Hack代码首先被编译为中间HipHop字节码,然后再动态编译成X86-64机器语言以及进行优化并在本机执行。
动态编译是某些程式设计程式语言在执行时用来增进效能的方法。尽管这技术源于Self,但使用此技术最为人所知的是Java。此技术可以做到一些只在执行时才能完成的最佳化。使用动态编译的执行环境一开始执行速度较慢,之后,完成大部分的编译和再编译后,会执行得比非动态编译程式快很多。因为初始化时的效能延迟,动态编译不适用于一些情况。在许多实作中,一些可以在编译时期做的最佳化被延到执行时期才编译,导致不必要的效能降低。即时编译是一种动态编译的形式。
Tamarin是一个自由软件的即时编译虚拟机器,旨在实现ECMAScript语言标准规范。Tamarin的源代码基于Adobe Systems开发的ActionScript Virtual Machine 2,是Adobe Flash Player所使用的虚拟机器。
picoJava是一种微处理器规范,专门用于Java字节码的机器语言,并且无需直译器或即时编译。与带有Java虚拟机的标准 Intel 中央处理器相比,PicoJava可以将字节码执行速度提高20倍。基于picoJava的微处理器还可以像精简指令集计算机 CPU 架构一样高效地执行C语言 / C++代码。picoJava 规范不包含任何电脑内存或I/O逻辑,因此开发人员可以添加自己的逻辑来自定义内存和界面。picoJava 的开源版本已在现场可编程逻辑门阵列中实现。