クラスFlightRecorder
このクラスは、レコーディングの作成、起動、停止および破棄に必要なメソッドを提供します。
- 導入されたバージョン:
- 9
-
メソッドのサマリー
修飾子と型メソッド説明static voidaddListener(FlightRecorderListener changeListener) レコーダ・リスナーを追加します。static voidaddPeriodicEvent(Class<? extends Event> eventClass, Runnable hook) 定期イベントのフックを追加します。現在登録されているすべてのイベントを含む不変のリストを返します。static FlightRecorderプラットフォーム用のFlight Recorderを返します。使用可能なレコーディングの不変のリストを返します。static booleanJava Virtual Machine (JVM)のFlight Recorder機能がある場合は、trueを返します。static booleanFlight Recorderが初期化されている場合にtrueを返します。static voidイベント・クラスを登録します。static booleanremoveListener(FlightRecorderListener changeListener) レコーダ・リスナーを削除します。static booleanremovePeriodicEvent(Runnable hook) 定期イベントのフックを削除します。使用可能なすべての記録済データのスナップショットを作成します。static voidunregister(Class<? extends Event> eventClass) イベント・クラスの登録を解除します。
-
メソッドの詳細
-
getRecordings
使用可能なレコーディングの不変のリストを返します。レコーディングは、作成時に使用可能になります。
Recording.close()をコールした後、通常はCLOSED状態にある場合は使用できなくなります。- 戻り値:
nullではなく、レコーディングのリスト
-
takeSnapshot
public Recording takeSnapshot()使用可能なすべての記録済データのスナップショットを作成します。スナップショットは、
STOPPED状態での合成されたレコーディングです。 データが使用できない場合、サイズが0のレコーディングが返されます。スナップショットによって、後の操作である(たとえば、間隔の変更やデータ・サイズの縮小のための操作)のデータに安定したアクセスが提供されます。
次の例は、スナップショットを作成し、ファイルにデータのサブセットを書き込む方法を示しています。
データへのアクセスが不要になった場合、呼出し側はレコーディングを閉じる必要があります。try (Recording snapshot = FlightRecorder.getFlightRecorder().takeSnapshot()) { if (snapshot.getSize() > 0) { snapshot.setMaxSize(100_000_000); snapshot.setMaxAge(Duration.ofMinutes(5)); snapshot.dump(Paths.get("snapshot.jfr")); } }- 戻り値:
nullではなく、利用可能なすべてのレコーディング・データのスナップショット
-
register
イベント・クラスを登録します。イベント・クラスがすでに登録されている場合、このメソッドの呼出しは無視されます。
- パラメータ:
eventClass- 登録するイベント・クラス(nullではない)- スロー:
IllegalArgumentException- クラスが抽象であるか、Eventのサブクラスでない場合
-
unregister
イベント・クラスの登録を解除します。イベント・クラスが登録されていない場合、このメソッドの呼出しは無視されます。
- パラメータ:
eventClass-nullではなく、登録解除するイベント・クラス- スロー:
IllegalArgumentException- クラスが抽象であるか、Eventのサブクラスでない場合
-
getFlightRecorder
public static FlightRecorder getFlightRecorder() throws IllegalStateExceptionプラットフォーム用のFlight Recorderを返します。- 戻り値:
nullではなくFlight Recorderのインスタンス- スロー:
IllegalStateException- flight Recorderを(たとえば、Java Virtual Machine (JVM)にFlight Recorderのサポートがない場合や、ファイル・リポジトリを作成したり、アクセスできない場合などです。)の作成できないか
-
addPeriodicEvent
定期イベントのフックを追加します。フックの実装は、他のFlight Recorder操作をブロックしないように、できるだけ早く返す必要があります。 フックは、指定されたタイプのイベントを1つ以上発行する必要があります。 フックが追加されると、呼出しが呼び出される間隔は
"period"設定を使用して構成可能になります。- パラメータ:
eventClass- フックを実行する必要があるクラス(nullではない)hook- フック、ないnull- スロー:
IllegalArgumentException- クラスがEventのサブクラスでない場合、抽象クラスである場合、またはフックがすでに追加されている場合IllegalStateException- イベント・クラスにRegistered(false)注釈があり、手動で登録されていない場合
-
removePeriodicEvent
public static boolean removePeriodicEvent(Runnable hook) 定期イベントのフックを削除します。- パラメータ:
hook- 削除するフック、ないnull- 戻り値:
- フックが削除されると
true、それ以外の場合はfalse
-
getEventTypes
現在登録されているすべてのイベントを含む不変のリストを返します。デフォルトでは、イベントは最初に使用されたときに登録されます。通常、イベント・オブジェクトが割り当てられたときに登録されます。 イベントが早期に表示されるようにするには、
register(Class)メソッドを起動して登録をトリガーします。- 戻り値:
nullではなく、イベントのリスト
-
addListener
public static void addListener(FlightRecorderListener changeListener) レコーダ・リスナーを追加します。Flight Recorderがリスナーの追加時にすでに初期化されている場合は、このメソッドから戻る前に
FlightRecorderListener.recorderInitialized(FlightRecorder)メソッドが呼び出されます。- パラメータ:
changeListener- リスナーはnullではなく追加
-
removeListener
public static boolean removeListener(FlightRecorderListener changeListener) レコーダ・リスナーを削除します。同じリスナーが複数回追加された場合、1つのインスタンスのみが削除されます。
- パラメータ:
changeListener- 削除するリスナー、nullではありません- 戻り値:
true、リスナーを削除できる場合はfalse、それ以外の場合はfalse
-
isAvailable
public static boolean isAvailable()Java Virtual Machine (JVM)のFlight Recorder機能がある場合は、trueを返します。このメソッドでは、初期化作業を実際に実行せずに、Flight Recorderを初期化できるかどうかを迅速にチェックできます。 実行時に値が変更される可能性があり、キャッシュするのは安全ではありません。
- 戻り値:
true、Flight Recorderが使用可能な場合はtrue、それ以外の場合はfalse- 関連項目:
-
isInitialized
public static boolean isInitialized()Flight Recorderが初期化されている場合にtrueを返します。- 戻り値:
true、Flight Recorderが初期化されるとtrue、それ以外の場合はfalse- 関連項目:
-