モジュール jdk.jfr
パッケージ jdk.jfr

注釈インタフェースPeriod


@Retention(RUNTIME) @Inherited @Target(TYPE) public @interface Period
イベント注釈で、定期イベントのデフォルト設定値を指定します。

次の例は、Period注釈を使用して様々な間隔でイベントを発行する方法を示しています。

@Period("1 s")
@Name("Counter")
class CountEvent extends Event {
    int count;
}
@Period("3 s")
@Name("Fizz")
class FizzEvent extends Event {
}
@Period("5 s")
@Name("Buzz")
class BuzzEvent extends Event {
}

var counter = new AtomicInteger();
FlightRecorder.addPeriodicEvent(CountEvent.class, () -> {
    CountEvent event = new CountEvent();
    event.count = counter.incrementAndGet();
    event.commit();
});
FlightRecorder.addPeriodicEvent(FizzEvent.class, () -> {
    new FizzEvent().commit();
});
FlightRecorder.addPeriodicEvent(BuzzEvent.class, () -> {
    new BuzzEvent().commit();
});

var sb = new StringBuilder();
var last = new AtomicInteger();
var current = new AtomicInteger();
try (var r = new RecordingStream()) {
    r.onEvent("Counter", e -> current.set(e.getValue("count")));
    r.onEvent("Fizz", e -> sb.append("Fizz"));
    r.onEvent("Buzz", e -> sb.append("Buzz"));
    r.onFlush(() -> {
        if (current.get() != last.get()) {
            System.out.println(sb.isEmpty() ? current : sb);
            last.set(current.get());
            sb.setLength(0);
        }
    });
    r.start();
}

導入されたバージョン:
9
  • オプション要素のサマリー

    オプションの要素
    修飾子と型
    任意要素
    説明
    定期的な設定のデフォルト設定値を返します。
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final String
    定期的なイベントを構成するための構成名"period"
  • フィールド詳細

  • 要素の詳細

    • value

      String value
      定期的な設定のデフォルト設定値を返します。

      正のLong値とそれに続く空白および次の単位のいずれかの文字列表現。

      "ns" (nanoseconds)
      "us" (microseconds)
      "ms" (milliseconds)
      "s" (seconds)
      "m" (minutes)
      "h" (hours)
      "d" (days)

      値の例: "0 ns""10 ms"および"1 s"

      1つの期間が"everyChunk"であり、各レコーディング・ファイルに1回以上出現することを指定する場合もあります。 表示されるイベントの数は、データが記録されるときにファイル・ローテーションが発生する回数によって異なります。

      戻り値:
      デフォルトの設定値であり、nullではありません
      デフォルト:
      "everyChunk"