JITWatchを試す2

前回はJITWatchのデモアプリを使ってHotSpotログファイルを作成したので、今回はソースコードを書いて試してみた。
手順は前回と同じ。
https://hirakida29.hatenablog.com/entry/2020/06/06/235407

準備

ソースコード

build.gradle

plugins {
    id 'java'
    id 'application'
}

group 'com.example'
version '1.0-SNAPSHOT'
sourceCompatibility = JavaVersion.VERSION_11

mainClassName = 'com.example.Main'

run {
    jvmArgs = ['-XX:+UnlockDiagnosticVMOptions', '-XX:+TraceClassLoading', '-XX:+LogCompilation', '-XX:+PrintAssembly']
}

Main.java

デモアプリの一部を抜粋 https://github.com/AdoptOpenJDK/jitwatch/blob/master/core/src/main/java/org/adoptopenjdk/jitwatch/demo/MakeHotSpotLog.java

package com.example;

public class Main {

    public Main(int iterations) {
        addVariable(iterations);
    }

    private void addVariable(int iterations) {
        long count = 0;
        for (int i = 0; i < iterations; i++) {
            count = add(count, i);
        }
        System.out.println(count);
    }

    private long add(long a, long b) {
        return a + b;
    }

    public static void main(String[] args) throws Exception {
        new Main(1_000_000);
    }
}

HotSpotログファイル

上記のコードを実行してログファイルを出力する。

% ./gradlew run

Demo