- すべての実装されたインタフェース:
- Closeable,- AutoCloseable
次の例は、レコーディング・データをディスクに構成、起動、停止およびダンプする方法を示しています。
   Configuration c = Configuration.getConfiguration("default");
   Recording r = new Recording(c);
   r.start();
   System.gc();
   Thread.sleep(5000);
   r.stop();
   r.dump(Files.createTempFile("my-recording", ".jfr"));
 - 導入されたバージョン:
- 9
- 
コンストラクタのサマリーコンストラクタ
- 
メソッドのサマリー修飾子と型メソッド説明voidclose()このレコーディングに関連付けられているすべてのデータを解放します。copy(boolean stop)新しいレコーディングIDと名前を使用して、このレコーディングのクローンを返します。イベントを無効にします。指定された名前のイベントを無効にします。voidレコーディング・データをファイルに書き込みます。イベントを有効にします。指定された名前のイベントを有効にします。レコーディングが停止したときにレコーディング・データが書き込まれる宛先ファイルを返します。宛先が設定されていない場合はnullを返します。booleanこのレコーディングがJVMの終了時にディスクにダンプされるかどうかを返します。このレコーディングに指定された継続時間を返します。継続時間が設定されていない場合はnullを返します。longgetId()このレコーディングの一意のIDを返します。データが削除される前にディスク・リポジトリに保持される時間の長さを返します。longディスクのリポジトリに保存されなくなったデータの最大サイズ(バイト単位)を返します。getName()このレコーディングの名前を返します。このレコーディングで使用される設定を返します。longgetSize()ディスク・リポジトリ内のこのレコーディングの現在のサイズをバイト単位で返します。このレコーディングが開始された時間を返します。getState()このレコーディングが現在保持されているレコーディング状態を返します。このレコーディングが停止した時間を返します。指定された間隔のデータ・ストリームを作成します。booleanisToDisk()このレコーディングがディスク・リポジトリを使用する場合はtrueを返し、そうでない場合はtrueを返します。voidscheduleStart(Duration delay)遅延後にこのレコーディングを開始します。voidsetDestination(Path destination)データがレコーディング停止時に書き込まれるロケーション、またはデータがダンプされない場合はnullを設定します。voidsetDumpOnExit(boolean dumpOnExit)このレコーディングを、JVMの終了時にディスクにダンプするかどうかを設定します。voidsetDuration(Duration duration)レコーディングが停止するまでの期間を設定します。voidディスク・リポジトリに保存されるバック・データの量を決定します。voidsetMaxSize(long maxSize)ディスク・リポジトリに保持されるデータ量を決定します。void解読可能な名前(たとえば、"My Recording")を設定します。voidsetSettings(Map<String,String> settings)このレコーディングのすべての設定を置き換えます。voidsetToDisk(boolean disk)このレコーディングをディスク・リポジトリに継続的にフラッシュするか、またはメモリー・バッファで使用可能なデータに制限するかを決定します。voidstart()このレコーディングを開始します。booleanstop()このレコーディングを停止します。
- 
コンストラクタの詳細- 
記録名前/値ペアのマップの設定を使用してレコーディングを作成します。新しく作成されたレコーディングは、 RecordingState.NEW状態にあります。 レコーディングを開始するには、start()メソッドを呼び出します。- パラメータ:
- settings-- nullではなく、名前/値ペアのマップとしての設定
- 例外:
- IllegalStateException- flight Recorderを(たとえば、Java Virtual Machine (JVM)にFlight Recorderのサポートがない場合や、ファイル・リポジトリを作成したり、アクセスできない場合などです。)の作成できないか
- SecurityException- セキュリティ・マネージャが使用され、FlightRecorderPermission "accessFlightRecorder"が設定されていない場合。
- 関連項目:
- jdk.jfr
 
- 
記録public Recording()設定なしでレコーディングを作成します。新しく作成されたレコーディングは、 RecordingState.NEW状態にあります。 レコーディングを開始するには、start()メソッドを呼び出します。- 例外:
- IllegalStateException- flight Recorderを(たとえば、Java Virtual Machine (JVM)にFlight Recorderのサポートがない場合や、ファイル・リポジトリを作成したり、アクセスできない場合などです。)の作成できないか
- SecurityException- セキュリティ・マネージャが使用され、FlightRecorderPermission "accessFlightRecorder"が設定されていない場合。
 
- 
記録public Recording(Configuration configuration)構成からの設定でレコーディングを作成します。次の例は、事前定義済の構成を使用するレコーディングの作成方法を示しています。 Recording r = new Recording(Configuration.getConfiguration("default"));新しく作成されたレコーディングは、RecordingState.NEW状態にあります。 レコーディングを開始するには、start()メソッドを呼び出します。- パラメータ:
- configuration- 使用する設定が含まれている(- nullではない)構成
- 例外:
- IllegalStateException- flight Recorderを(たとえば、Java Virtual Machine (JVM)にFlight Recorderのサポートがない場合や、ファイル・リポジトリを作成したり、アクセスできない場合などです。)の作成できないか
- SecurityException- セキュリティ・マネージャが使用され、FlightRecorderPermission "accessFlightRecorder"が設定されていない場合。
- 関連項目:
- Configuration
 
 
- 
- 
メソッドの詳細- 
startpublic void start()このレコーディングを開始します。このメソッドを呼び出す前に、レコーディング・オプションとイベント設定を構成することをお薦めします。 これを行う利点は、記録されたデータを分析するときの一貫性のある状態となり、構成をアトミックに適用できるためパフォーマンスが向上します。 このメソッドが正常に起動されると、このレコーディングは RUNNING状態になります。- 例外:
- IllegalStateException- レコーディングがすでに開始されているか、- CLOSED状態にあるか
 
- 
scheduleStartpublic void scheduleStart(Duration delay)遅延後にこのレコーディングを開始します。このメソッドが正常に起動されると、このレコーディングは DELAYED状態になります。- パラメータ:
- delay-- nullではなく、このレコーディングを開始する前に待機する時間
- 例外:
- IllegalStateException- レコーディングが- NEW状態でないかどうか
 
- 
stoppublic boolean stop()このレコーディングを停止します。レコーディングを停止すると、再開できません。 このレコーディングに宛先が含まれる場合、データはその宛先に書き込まれ、レコーディングは閉じられます。 レコーディングを閉じると、データは使用できなくなります。 このメソッドが正常に起動されると、このレコーディングは STOPPED状態になります。- 戻り値:
- レコーディングが停止するとtrue、それ以外の場合はfalse
- 例外:
- IllegalStateException- レコーディングが開始されていないか、すでに停止している場合
- SecurityException- セキュリティ・マネージャが存在し、呼出し側が宛先パスに書き込む- FilePermissionを持っていない場合
- 関連項目:
- setDestination(Path)
 
- 
getSettingsこのレコーディングで使用される設定を返します。返された Mapを変更しても、このレコーディングの設定は変更されません。このレコーディングの設定がない場合、空の Mapが返されます。- 戻り値:
- nullではなく、レコーディング設定
 
- 
getSizepublic long getSize()ディスク・リポジトリ内のこのレコーディングの現在のサイズをバイト単位で返します。レコーディング・バッファがフラッシュされると、サイズが更新されます。 レコーディングがディスク・リポジトリに書き込まれない場合、返されるサイズは常に 0です。- 戻り値:
- レコーディングがディスク・リポジトリに書き込まれない場合にレコーディングされたデータの量(バイト単位)、または0
 
- 
getStopTimepublic Instant getStopTime()このレコーディングが停止した時間を返します。- 戻り値:
- このレコーディングが停止されない場合は時間(null)
 
- 
getStartTimepublic Instant getStartTime()このレコーディングが開始された時間を返します。- 戻り値:
- 時間。このレコーディングが開始されていない場合はnull
 
- 
getMaxSizepublic long getMaxSize()ディスクのリポジトリに保存されなくなったデータの最大サイズ(バイト単位)を返します。- 戻り値:
- 最大サイズが設定されていない場合は、最大サイズ(バイト単位)、または0
 
- 
getMaxAgepublic Duration getMaxAge()データが削除される前にディスク・リポジトリに保持される時間の長さを返します。- 戻り値:
- 最長時間が設定されていない場合はnull
 
- 
getNamepublic String getName()このレコーディングの名前を返します。デフォルトでは、名前はレコーディングIDと同じです。 - 戻り値:
- nullではなく、レコーディング名
 
- 
setSettingsこのレコーディングのすべての設定を置き換えます。次の例は、レコーディングのイベント設定の設定方法を示しています。 Map<String, String> settings = new HashMap<>(); settings.putAll(EventSettings.enabled("jdk.CPUSample").withPeriod(Duration.ofSeconds(2)).toMap()); settings.putAll(EventSettings.enabled(MyEvent.class).withThreshold(Duration.ofSeconds(2)).withoutStackTrace().toMap()); settings.put("jdk.ExecutionSample#period", "10 ms"); recording.setSettings(settings);次の例は、設定をマージする方法を示しています。Map<String, String> settings = recording.getSettings(); settings.putAll(additionalSettings); recording.setSettings(settings);- パラメータ:
- settings-- nullではなく、設定する設定
 
- 
getStatepublic RecordingState getState()このレコーディングが現在保持されているレコーディング状態を返します。- 戻り値:
- nullではなく、レコーディング状態
- 関連項目:
- RecordingState
 
- 
closepublic void close()このレコーディングに関連付けられているすべてのデータを解放します。このメソッドが正常に起動されると、このレコーディングは CLOSED状態になります。- 定義:
- close、インタフェース:- AutoCloseable
- 定義:
- close、インタフェース:- Closeable
 
- 
copypublic Recording copy(boolean stop)新しいレコーディングIDと名前を使用して、このレコーディングのクローンを返します。 クローンは、レコーディングを停止せずにデータをダンプするのに便利です。 クローンが作成されると、コピーするデータ量はsetMaxAge(Duration)メソッドとsetMaxSize(long)methodで制約されます。- パラメータ:
- stop- 新しく作成したコピーをすぐに停止する必要がある場合は- true、それ以外の場合は- false
- 戻り値:
- nullではなく、レコーディング・コピー
 
- 
dumppublic void dump(Path destination) throws IOExceptionレコーディング・データをファイルに書き込みます。レコーディングを開始する必要がありますが、必ずしも停止する必要はありません。 - パラメータ:
- destination-- nullではなく、レコーディング・データが書き込まれるロケーション
- 例外:
- IOException- 指定したロケーションにレコーディングをコピーできない場合
- SecurityException- セキュリティ・マネージャが存在し、呼出し側が宛先パスに書き込む- FilePermissionを持っていない場合
 
- 
isToDiskpublic boolean isToDisk()このレコーディングがディスク・リポジトリを使用する場合はtrueを返し、そうでない場合はtrueを返します。値が設定されていない場合、 trueが戻されます。- 戻り値:
- レコーディングでディスク・リポジトリが使用される場合は、true、そうでない場合はtrue
 
- 
setMaxSizepublic void setMaxSize(long maxSize)ディスク・リポジトリに保持されるデータ量を決定します。ディスクに格納されるデータのレコーディング量を制御するために、保持するデータの最大量を指定できます。 上限を超えた場合、Java Virtual Machine (JVM)は最も古いチャンクを削除し、新しいチャンクのための余裕を作成します。 最大限度または最大経過時間を設定しないと、レコーディングのサイズが無期限に拡大することがあります。 - パラメータ:
- maxSize- 保存するデータの量(無限大の場合は- 0)
- 例外:
- IllegalArgumentException-- maxSizeが負の場合
- IllegalStateException- レコーディングが- CLOSED状態にある場合
 
- 
setMaxAgepublic void setMaxAge(Duration maxAge)ディスク・リポジトリに保存されるバック・データの量を決定します。ディスクに格納されるデータのレコーディング量を制御するために、データを保持する最大時間を指定できます。 指定した時間よりも古いディスクに格納されているデータは、Java Virtual Machine (JVM)によって削除されます。 最大限度または最大経過時間を設定しないと、レコーディングのサイズが無期限に拡大することがあります。 - パラメータ:
- maxAge- データが保持される時間の長さ(無限大の場合は- null)。
- 例外:
- IllegalArgumentException-- maxAgeが負の場合
- IllegalStateException- レコーディングが- CLOSED状態にあるかどうか
 
- 
setDestinationpublic void setDestination(Path destination) throws IOExceptionデータがレコーディング停止時に書き込まれるロケーション、またはデータがダンプされない場合はnullを設定します。宛先が設定されている場合、データが宛先パスに正常にコピーされた後、このレコーディングは自動的に閉じられます。 宛先が設定されていない場合、Flight Recorderでは、このレコーディングがクローズされるまでレコーディング・データを保持します。 dump(Path)メソッドを使用して、データを手動でファイルに書き込みます。- パラメータ:
- destination- 宛先パス、または、レコーディングを停止時にダンプしない場合は- null
- 例外:
- IllegalStateException- レコーディングが- STOPPEDまたは- CLOSED状態にあるかどうか。
- SecurityException- セキュリティ・マネージャが存在し、呼出し側が- FilePermissionを持って- destinationファイルの読取り、書込みおよび削除を行うことができない場合
- IOException- パスが書込み可能でない場合
 
- 
getDestinationpublic Path getDestination()レコーディングが停止したときにレコーディング・データが書き込まれる宛先ファイルを返します。宛先が設定されていない場合はnullを返します。- 戻り値:
- 宛先ファイル、または設定されていない場合はnull。
 
- 
getIdpublic long getId()このレコーディングの一意のIDを返します。- 戻り値:
- レコーディングID
 
- 
setNamepublic void setName(String name)解読可能な名前(たとえば、"My Recording")を設定します。- パラメータ:
- name-- nullではなく、レコーディング名
- 例外:
- IllegalStateException- レコーディングが- CLOSED状態にある場合
 
- 
setDumpOnExitpublic void setDumpOnExit(boolean dumpOnExit)このレコーディングを、JVMの終了時にディスクにダンプするかどうかを設定します。- パラメータ:
- dumpOnExit- このレコーディングをJVMの終了時にダンプする必要がある場合
 
- 
getDumpOnExitpublic boolean getDumpOnExit()このレコーディングがJVMの終了時にディスクにダンプされるかどうかを返します。終了時にダンプが設定されていない場合、 falseが戻されます。- 戻り値:
- レコーディングが終了時にダンプされる場合はtrue、それ以外の場合はfalse。
 
- 
setToDiskpublic void setToDisk(boolean disk)このレコーディングをディスク・リポジトリに継続的にフラッシュするか、またはメモリー・バッファで使用可能なデータに制限するかを決定します。- パラメータ:
- disk- このレコーディングがディスクに書き込まれる場合- true、イン・メモリーならば- false
 
- 
getStreampublic InputStream getStream(Instant start, Instant end) throws IOException指定された間隔のデータ・ストリームを作成します。ストリームには、指定された範囲外のデータが含まれる場合があります。 レコーディングがディスクにない場合、ストリームを作成できず、 nullが返されます。- パラメータ:
- start- ストリームの開始時間。レコーディングの開始時間からデータを取得する場合は- null
- end- ストリームの終了時間。現在の時間までデータを取得する場合は- null。
- 戻り値:
- 入力ストリーム。期間内に使用可能なデータがない場合、またはレコーディングがディスクに記録されなかった場合はnull
- 例外:
- IllegalArgumentException-- endが- startより前に発生した場合
- IOException- ストリームを開くことができない場合
- 関連項目:
- setToDisk(boolean)
 
- 
getDurationpublic Duration getDuration()このレコーディングに指定された継続時間を返します。継続時間が設定されていない場合はnullを返します。レコーディングが RecordingState.NEW状態にある場合にのみ、期間を設定できます。- 戻り値:
- 希望のレコーディング時間、または時間が設定されていない場合はnull。
 
- 
setDurationpublic void setDuration(Duration duration)レコーディングが停止するまでの期間を設定します。デフォルトでは、レコーディングには( null)の期間はありません。- パラメータ:
- duration- 期間が設定されていない場合は- null
- 例外:
- IllegalStateException- レコーディングが- STOPPEDまたは- CLOSED状態にあるかどうか
 
- 
enablepublic EventSettings enable(String name)指定された名前のイベントを有効にします。複数のイベントの名前が(たとえば、同じクラスが別のクラス・ローダーにロードされたとします。)である場合、名前と一致するすべてのイベントが有効になります。 特定のクラスを有効にするには、イベント・タイプIDの enable(Class)メソッドまたはString表現を使用します。- パラメータ:
- name-- nullではなく、イベントの設定
- 戻り値:
- nullではなく、さらなる構成のためのイベント設定
- 関連項目:
- EventType
 
- 
disablepublic EventSettings disable(String name)指定された名前のイベントを無効にします。(たとえば、同じクラスが別のクラス・ローダーにロードされたとします。)同じ名前のイベントが複数ある場合(たとえば、同じクラスが別のクラス・ローダーにロードされる)、名前に一致するすべてのイベントが無効になります。 特定のクラスを無効にするには、イベント・タイプIDの disable(Class)メソッドまたはString表現を使用します。- パラメータ:
- name-- nullではなく、イベントの設定
- 戻り値:
- nullではなく、さらなる構成のためのイベント設定
 
- 
enablepublic EventSettings enable(Class<? extends Event> eventClass)イベントを有効にします。- パラメータ:
- eventClass-- nullではなく、有効にするイベント
- 戻り値:
- nullではなく、さらなる構成のためのイベント設定
- 例外:
- IllegalArgumentException-- eventClassが抽象クラスであるか、- Eventのサブクラスでない場合
 
- 
disablepublic EventSettings disable(Class<? extends Event> eventClass)イベントを無効にします。- パラメータ:
- eventClass-- nullではなく、有効にするイベント
- 戻り値:
- nullではなく、さらなる構成のためのイベント設定
- 例外:
- IllegalArgumentException-- eventClassが抽象クラスであるか、- Eventのサブクラスでない場合
 
 
-