1 初めてのイベントの作成および記録
サンプルHelloWorldSample.java
では、com.oracle.Hello
というイベントが作成されます。
import jdk.jfr.Event;
import jdk.jfr.Label;
import jdk.jfr.Name;
public class HelloWorldSample {
@Name("com.oracle.Hello")
@Label("Hello World!")
static class Hello extends Event {
@Label("Message")
String message;
}
public static void main(String... args) {
Hello event = new Hello();
event.begin();
event.message = "Hello world!";
event.commit();
}
}
次のコマンドを使用して、HelloWorldSample
を実行します:
java -XX:StartFlightRecording:filename=hw.jfr HelloWorldSample.java
これにより、HelloWorldSample
が実行され、hw.jfr
という記録ファイルが作成されます。
記録ファイルの内容を表示するには、次のコマンドを実行します:
jfr print hw.jfr
Flight Recorderにより記録されたすべてのイベントが出力されます。
自分で作成したHello
イベントのみを表示する場合は、次のコマンドを実行します:
jfr print --events Hello hw.jfr
次のような出力が表示されます:
com.oracle.Hello {
startTime = 16:44:14.841
duration = 0.0170 ms
message = "Hello world!"
eventThread = "main" (javaThreadId = 1)
stackTrace = [
HelloWorldSample.main(String[]) line: 18
jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Method, Object, Object[])
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Object, Object[]) line: 64
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
java.lang.reflect.Method.invoke(Object, Object[]) line: 564
...
]
}