什么是AOT技术?
人类对性能的期望永无止境。尽管早期用编译型语言C/C++已经达到性能要求,中间件语言Java/C#也随着硬件性能提升施展拳脚,人类发现,字节码或者中间语言代码完全可以直接转换成机器码,岂不实现了C/C++的性能? AOT技术应运而生。
AOT(Ahead-Of-Time)编译是一种编译技术,它将程序源代码或中间表示(如 Java 字节码或 .NET 的 IL 代码)直接编译成目标平台的机器代码。这与 JIT(Just-In-Time)编译相对,JIT 编译是在程序运行时进行的,将中间代码转换成机器代码。
.NET平台CoreRT就是AOT技术, 它是一个运行时,能够将 C# 代码编译为本机机器代码而不需要任何运行时解释器或 JIT (Just-In-Time) 编译器。Java平台GraalVM也是AOT技术的代表。
Android平台ART技术也是AOT技术,自Android 4.4 KitKat开始成为默认运行时,比之前的Dalvik虚拟机JIT效率更高。
Java语言不同类型的JIT或AOT编译器?
正因为有中间代码,Java或者C#语言不同于C/C++语言,它们的编译模式可以有三种。
- 源代码编译成字节码
- 字节码编译成本地码
- 源代码编译成本地码
这三种分别对应前端编译器、JIT编译器和AOT编译器。
什么是HotSpot编译器?
若文章对您有帮助,欢迎关注。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。