【每日阅读】2021年2月3日-Java即时编译

有疑问就留言给我吧😄

Java内置两种即时编译器,C1(client)和C2(server)。

【每日阅读】2021年2月3日-Java即时编译

如图,有4种编译路径,起点都是解释执行,终点有两种。即在no profilling和c2两处终止即使编译。

从 Java 8 开始,Java 虚拟机默认采用分层编译的方式。它将执行分为五个层次,分为为 0 层解释执行,1 层执行没有 profiling 的 C1 代码,2 层执行部分 profiling 的 C1 代码,3 层执行全部 profiling 的 C1 代码,和 4 层执行 C2 代码。

通常情况下,方法会首先被解释执行,然后被 3 层的 C1 编译,最后被 4 层的 C2 编译。

原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2819

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

GitHub
分享本页
返回顶部