jvm - JVM C1 和 C2 编译时间基准
问题描述
我有简单的 hello world 程序,并设置-XX:TieredStopAtLevel=[0 to 4]
. 我了解它如何使用解释器或 C1 或 C2 或同时使用 C1 和 C2 来编译代码的基本区别。
如果我使用不同的数字,我想知道真正的基准测试细节以了解编译时间,以及其他细节。
解决方案
要对 JIT 编译器进行基准测试,请使用-Xcomp
强制编译所有已执行的方法,并检查CompilationMXBean.getTotalCompilationTime
JIT 编译所花费的总时间。
例子
import java.lang.management.ManagementFactory;
public class CompilationTime {
public static void main(String[] args) throws Exception {
System.out.println(ManagementFactory.getCompilationMXBean().getTotalCompilationTime());
}
}
C1
$ java -Xcomp -XX:TieredStopAtLevel=1 CompilationTime
162 // milliseconds
C2
$ java -Xcomp -XX:-TieredCompilation CompilationTime
1129 // milliseconds
推荐阅读
- python - 如何使用 NLTK 获取多个单词的同义词?
- javascript - Receiving Post data (not form) in Express
- amazon-web-services - 如果 cloudformation 堆栈被删除并且相同的安全组已存在,则重新创建 SecurityGroup
- typescript - How can I extend a TypeScript interface and infer the arguments?
- phpstorm - Select next occurence with IdeaVim in PhpStorm
- java - 如何使元素被选中的概率降低两倍?
- javascript - 如何在特定日期和时间从谷歌上的操作发送通知
- php - PHP - 创建依赖下拉列表
- vue.js - Vue 插件 - Vue 已定义但从未使用过
- r - Even after converting my file as factor why does my output give factor(0) 30956 Levels?