使用 Ideal Graph Visualizer 了解 IR 图

首先请到官网下载 - Windows 链接

使用 Ideal Graph Visualizer 了解 IR 图_第1张图片

修改配置文件

请配置 JDK6 的路径,其他版本的 JDK 无法打开 IGV(我尝试了jdk8和11都开不了)

使用 Ideal Graph Visualizer 了解 IR 图_第2张图片

代码

下面是测试代码,请使用Openjdk fastdebug 版本

public class CompilationTest {

    public static int hash(Object input) {
        if (input instanceof Exception) {
            return System.identityHashCode(input);
        } else {
            return input.hashCode();
        }
    }

    public static void main(String[] args) throws InterruptedException {
        for (int i = 0; i < 50_000; i++) {
            hash(i);
        }
        Thread.sleep(2000);
    }
}

Java 编译命令

java -version 看看你的版本

使用 Ideal Graph Visualizer 了解 IR 图_第3张图片
编译命令,打印出 ideal.xml

javac CompilationTest.java
java -XX:PrintIdealGraphLevel=2 -XX:PrintIdealGraphFile=ideal.xml CompilationTest

浏览 IR 图

完全看不懂啥意思啊。
使用 Ideal Graph Visualizer 了解 IR 图_第4张图片
建议使用Graal提供的IGV工具,可读性更高

参考

openjdk:igv

openjdk1.8.0-fasedebug

你可能感兴趣的:(JVM)