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.jfrFlight 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
...
]
}