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