このクラスは、レコーディングの作成、起動、停止および破棄に必要なメソッドを提供します。
- 導入されたバージョン:
- 9
-
メソッドのサマリー
修飾子と型メソッド説明static void
addListener
(FlightRecorderListener changeListener) レコーダのリスナーを追加し、リスナーの起動時に使用するAccessControlContext
を取得します。static void
addPeriodicEvent
(Class<? extends Event> eventClass, Runnable hook) 定期イベントのフックを追加します。現在登録されているすべてのイベントを含む不変のリストを返します。static FlightRecorder
プラットフォーム用のFlight Recorderを返します。使用可能なレコーディングの不変のリストを返します。static boolean
Java Virtual Machine (JVM)のFlight Recorder機能がある場合は、true
を返します。static boolean
Flight Recorderが初期化されている場合にtrue
を返します。static void
イベント・クラスを登録します。static boolean
removeListener
(FlightRecorderListener changeListener) レコーダ・リスナーを削除します。static boolean
removePeriodicEvent
(Runnable hook) 定期イベントのフックを削除します。使用可能なすべての記録済データのスナップショットを作成します。static void
unregister
(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
のサブクラスでない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にFlightRecorderPermission("registerEvent")
がない場合
-
unregister
イベント・クラスの登録を解除します。イベント・クラスが登録されていない場合、このメソッドの呼出しは無視されます。
- パラメータ:
eventClass
-null
ではなく、登録解除するイベント・クラス- 例外:
IllegalArgumentException
- クラスが抽象であるか、Event
のサブクラスでない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にFlightRecorderPermission("registerEvent")
がない場合
-
getFlightRecorder
public static FlightRecorder getFlightRecorder() throws IllegalStateException, SecurityExceptionプラットフォーム用のFlight Recorderを返します。- 戻り値:
null
ではなくFlight Recorderのインスタンス- 例外:
IllegalStateException
- flight Recorderを(たとえば、Java Virtual Machine (JVM)にFlight Recorderのサポートがない場合や、ファイル・リポジトリを作成したり、アクセスできない場合などです。)の作成できないかSecurityException
- セキュリティ・マネージャが存在し、呼び出し元にFlightRecorderPermission("accessFlightRecorder")
がない場合
-
addPeriodicEvent
public static void addPeriodicEvent(Class<? extends Event> eventClass, Runnable hook) throws SecurityException 定期イベントのフックを追加します。フックの実装は、他のFlight Recorder操作をブロックしないように、できるだけ早く返す必要があります。 フックは、指定されたタイプのイベントを1つ以上発行する必要があります。 フックが追加されると、呼出しが呼び出される間隔は
"period"
設定を使用して構成可能になります。- パラメータ:
eventClass
- フックを実行する必要があるクラス(null
ではない)hook
- フック、null
ではない- 例外:
IllegalArgumentException
- クラスがEvent
のサブクラスでない場合、抽象クラスである場合、またはフックがすでに追加されている場合IllegalStateException
- イベント・クラスにRegistered(false)
注釈があり、手動で登録されていない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にFlightRecorderPermission("registerEvent")
がない場合
-
removePeriodicEvent
public static boolean removePeriodicEvent(Runnable hook) throws SecurityException 定期イベントのフックを削除します。- パラメータ:
hook
- 削除するフック、null
ではない- 戻り値:
- フックが削除されると
true
、それ以外の場合はfalse
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にFlightRecorderPermission("registerEvent")
がない場合
-
getEventTypes
現在登録されているすべてのイベントを含む不変のリストを返します。デフォルトでは、イベントは最初に使用されたときに登録されます。通常、イベント・オブジェクトが割り当てられたときに登録されます。 イベントが早期に表示されるようにするには、
register(Class)
メソッドを起動して登録をトリガーします。- 戻り値:
null
ではなく、イベントのリスト
-
addListener
public static void addListener(FlightRecorderListener changeListener) レコーダのリスナーを追加し、リスナーの起動時に使用するAccessControlContext
を取得します。Flight Recorderがリスナーの追加時にすでに初期化されている場合は、このメソッドから戻る前に
FlightRecorderListener.recorderInitialized(FlightRecorder)
メソッドが呼び出されます。- パラメータ:
changeListener
- リスナーはnull
ではなく追加- 例外:
SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にFlightRecorderPermission("accessFlightRecorder")
がない場合
-
removeListener
public static boolean removeListener(FlightRecorderListener changeListener) レコーダ・リスナーを削除します。同じリスナーが複数回追加された場合、1つのインスタンスのみが削除されます。
- パラメータ:
changeListener
- 削除するリスナー、null
ではありません- 戻り値:
- リスナーを削除できる場合は
true
、それ以外の場合はfalse
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にFlightRecorderPermission("accessFlightRecorder")
がない場合
-
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
- 関連項目:
-