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

クラスEvent


  • public abstract class Event
    extends jdk.internal.event.Event
    イベントのベース・クラスで、イベントとそのフィールドを定義するためにサブクラス化されます。

    次の例は、Eventクラスの実装方法を示しています。

     
     import jdk.jfr.Event;
     import jdk.jfr.Description;
     import jdk.jfr.Label;
    
     public class Example {
    
       @Label("Hello World")
       @Description("Helps programmer getting started")
       static class HelloWorld extends Event {
           @Label("Message")
           String message;
       }
    
       public static void main(String... args) {
           HelloWorld event = new HelloWorld();
           event.message = "hello, world!";
           event.commit();
       }
     }
     
     

    イベントが割り当てられ、そのフィールド・メンバーが移入された後は、#commit()メソッドを使用してFlight Recorderシステムに書き込むことができます。

    デフォルトでは、イベントは有効です。 イベントを無効にするには、Eventクラスに@Enabled(false)と注釈を付けます。

    サポートされるフィールド・タイプはJavaプリミティブです: booleancharbyteshortintlongfloatおよびdouble サポートされている参照タイプは次のとおりです。: StringThreadおよびClass 配列、列挙およびその他の参照型は暗黙的に無視され、含まれません。 サポートされている型のフィールドは、transient修飾子を使用することで除外できます。 静的フィールドは、サポートされている型であっても含まれません。

    注釈が(たとえば、LabelDescriptionおよびTimespanなどです。)を使用すると、ツールによってデータがわかりやすい方法でビジュアル化されます。 Eventクラスまたはそのフィールドに適用される注釈は、(間接的、直接または関連付けられている)が存在し、MetadataDefinitionアノテーションがあり、列挙、配列またはクラスが含まれていない場合に含まれます。

    イベントに格納するデータの収集にはコストがかかる場合があります。 shouldCommit()メソッドを使用すると、Event#commit()commitメソッドが呼び出されたときにイベント・インスタンスが実際にシステムに書き込まれるかどうかを検証できます。 shouldCommit()がfalseを戻した場合は、これらの操作を回避できます。

    導入されたバージョン:
    9
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected Event()
      サブクラス・コンストラクタによる呼出しの場合は、通常は暗黙的コンストラクタです。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      void begin()
      このイベントのタイミングを開始します。
      void commit()
      フィールド値、タイムスタンプおよびイベント期間をFlight Recorderシステムに書き込みます。
      void end()
      このイベントのタイミングを終了します。
      boolean isEnabled()
      少なくとも1つのレコーディングが実行されている場合はtrueを返し、このイベントの有効な設定をtrueに設定します。そうでない場合はfalseが返されます。
      void set​(int index, Object value)
      フィールド値を設定します。
      boolean shouldCommit()
      このイベントに対して有効な設定がtrueに設定され、イベントのしきい値内に期間がある場合はtrueを返し、層でない場合は、false
    • コンストラクタの詳細

      • Event

        protected Event()
        サブクラス・コンストラクタによる呼出しの場合は、通常は暗黙的コンストラクタです。
    • メソッドの詳細

      • begin

        public final void begin()
        このイベントのタイミングを開始します。
        オーバーライド:
        クラスjdk.internal.event.Eventbegin
      • end

        public final void end()
        このイベントのタイミングを終了します。 endメソッドは、beginメソッドの後に呼び出す必要があります。
        オーバーライド:
        クラスjdk.internal.event.Eventend
      • commit

        public final void commit()
        フィールド値、タイムスタンプおよびイベント期間をFlight Recorderシステムに書き込みます。

        イベントがbeginメソッドの呼出しで開始されたが、endメソッドの明示的な呼出しで終わらない場合は、commitメソッドが呼び出されるとイベントが終了します。

        オーバーライド:
        クラスjdk.internal.event.Eventcommit
      • isEnabled

        public final boolean isEnabled()
        少なくとも1つのレコーディングが実行されている場合はtrueを返し、このイベントの有効な設定をtrueに設定します。そうでない場合はfalseが返されます。
        オーバーライド:
        クラスjdk.internal.event.EventisEnabled
        戻り値:
        イベントが有効な場合はtrue、それ以外の場合はfalse
      • shouldCommit

        public final boolean shouldCommit()
        このイベントに対して有効な設定がtrueに設定され、イベントのしきい値内に期間がある場合はtrueを返し、層でない場合は、false しきい値は、すべての実行レコーディングの最小しきい値です。
        オーバーライド:
        クラスjdk.internal.event.EventshouldCommit
        戻り値:
        イベントをFlight Recorderシステムに書き込める場合はtrue、そうでない場合はfalse
      • set

        public final void set​(int index,
                              Object value)
        フィールド値を設定します。

        イベントがEventFactoryクラスを使用して動的に定義される場合にのみ適用されます。

        指定されたindexは、EventFactoryクラスのファクトリ・メソッドに渡されるValueDescriptorオブジェクトの索引に対応しています。

        オーバーライド:
        クラスjdk.internal.event.Eventset
        パラメータ:
        index - EventFactory#create(String, java.util.List, java.util.List)に渡されるフィールドの索引
        value - 設定する値はnullです
        例外:
        UnsupportedOperationException - 動的に生成されたイベントでない場合
        IndexOutOfBoundsException - index0以下、またはイベントに指定されたフィールド数以上であるかどうか
        関連項目:
        EventType.getFields(), EventFactory