【每日阅读】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

(0)
geekgaogeekgao博主
上一篇 2021年2月2日 下午11:53
下一篇 2021年2月5日

相关推荐

发表回复

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

GitHub
分享本页
返回顶部

Warning: error_log(/usr/local/lighthouse/softwares/wordpress/wp-content/plugins/spider-analyser/#log/log-3109.txt): failed to open stream: No such file or directory in /usr/local/lighthouse/softwares/wordpress/wp-content/plugins/spider-analyser/spider.class.php on line 2900