モジュール jdk.jfr
パッケージjdk.jfr.consumer
パッケージjdk.jfr.consumer
このパッケージには、Flight Recorderデータを使用するためのクラスが含まれています。
次の例では、プログラムはレコーディング内のすべてのメソッド・サンプルのヒストグラムを出力します。
public static void main(String[] args) throws IOException {
if (args.length != 1) {
System.err.println("Must specify a recording file.");
return;
}
RecordingFile.readAllEvents(Path.of(args[0])).stream()
.filter(e -> e.getEventType().getName().equals("jdk.ExecutionSample"))
.map(e -> e.getStackTrace())
.filter(s -> s != null)
.map(s -> s.getFrames().get(0))
.filter(f -> f.isJavaFrame())
.map(f -> f.getMethod())
.collect(
Collectors.groupingBy(m -> m.getType().getName() + "." + m.getName() + " " + m.getDescriptor(),
Collectors.counting()))
.entrySet()
.stream()
.sorted((a, b) -> b.getValue().compareTo(a.getValue()))
.forEach(e -> System.out.printf("%8d %s\n", e.getValue(), e.getKey()));
}
Null-handling
すべてのメソッドは、Javadocでnull
を受け入れるか返すかを定義します。 通常これは"not null"
で表されます。 null
パラメータが使用されない場合は、java.lang.NullPointerException
がスローされます。 null
パラメータがjava.io.IOException
のような他の例外をスローするメソッドに渡された場合、メソッドのJavadocがnull
の処理方法、つまりjava.lang.IllegalArgumentException
を明示的に指定しない限り、java.lang.NullPointerException
が優先されます。
- 導入されたバージョン:
- 9
-
クラス説明イベントのストリームを表します。イベント・タイプおよび構成に関する情報を含むイベントです。クラスまたはインタフェースなど、記録されたJavaタイプ。記録されたJavaクラス・ローダー。記録されたイベント。スタック・トレース内に記録されたフレーム。記録されたメソッド。1つ以上のフィールドで構成される複合データ型。記録されたスタック・トレース。記録されたスレッド。記録されたJavaスレッド・グループ。レコーディング・ファイル。レコーディング・ストリームは、現在のJVM (Java Virtual Machine)からイベントを生成します。