モジュール 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)からイベントを生成します。