モジュール jdk.jfr
パッケージ 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
-
インタフェースのサマリー インタフェース 説明 EventStream イベントのストリームを表します。 -
クラスのサマリー クラス 説明 RecordedClass クラスまたはインタフェースなど、記録されたJavaタイプ。RecordedClassLoader 記録されたJavaクラス・ローダー。RecordedEvent 記録されたイベント。RecordedFrame スタック・トレース内に記録されたフレーム。RecordedMethod 記録されたメソッド。RecordedObject 1つ以上のフィールドで構成される複合データ型。RecordedStackTrace 記録されたスタック・トレース。RecordedThread 記録されたスレッド。RecordedThreadGroup 記録されたJavaスレッド・グループ。RecordingFile レコーディング・ファイル。RecordingStream レコーディング・ストリームは、現在のJVM (Java Virtual Machine)からイベントを生成します。