Performance
Performance インターフェイスは、現在のページのパフォーマンス関連情報へのアクセスを提供します。
この型のオブジェクトは window.performance や self.performance をワーカーで呼び出すことで取得できます。パフォーマンス項目はコンテキスト単位であることに注意してください。メインスレッド(または他にもワーカー)でマークを作成した場合、ワーカースレッドではそのマークを見ることはできません。ウィンドウとワーカーのコンテキストで利用できる API は self.performance を参照してください。
EventTarget Performance
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 6 | 12 | 7 | 8 | 18 | 9 | |
| performance は Window インターフェイスのプロパティで、Performance オブジェクトを返します。このオブジェクトは、ウィンドウのスコープ内で実行されているコードのパフォーマンス情報を収集するために使用できます。 | 6 | 12 | 7 | 8 | 18 | 9 |
| clearMarks() メソッドは、すべての、または特定の PerformanceMark オブジェクトを、ブラウザーのパフォーマンスタイムラインから除去します。 | 29 | 12 | 38 | 11 | 29 | 11 |
| clearMeasures() メソッドは、すべての、または特定の PerformanceMeasure オブジェクトを、ブラウザーのパフォーマンスタイムラインから除去します。 | 29 | 12 | 38 | 11 | 29 | 11 |
| getEntries() メソッドは、現在パフォーマンスタイムラインにあるすべての PerformanceEntry オブジェクトの配列を返します。 | 28 | 12 | 35 | 11 | 28 | 11 |
| getEntriesByName() メソッドは、現在パフォーマンスタイムラインにある、指定された名前と型の PerformanceEntry オブジェクトの配列を返します。 | 28 | 12 | 35 | 11 | 28 | 11 |
| getEntriesByType() メソッドは、現在パフォーマンスタイムラインにある、指定された型の PerformanceEntry オブジェクトの配列を返します。 | 28 | 12 | 35 | 11 | 28 | 11 |
| mark() メソッドは、名前付き PerformanceMark オブジェクトを生成し、ブラウザーのパフォーマンスタイムラインに高解像度のタイムスタンプマーカーを表示します。 | 28 | 12 | 38 | 11 | 28 | 11 |
mark (markOptions parameter) `markOptions` パラメータ | 78 | 79 | 101 | 14.1 | 78 | 14.5 |
mark (returns performancemark) `PerformanceMark` を返す | 78 | 79 | 101 | 14.1 | 78 | 14.5 |
| measure() メソッドは、 2 つのマーク間の時間を表す名前付き PerformanceMeasure オブジェクトを、ブラウザーのパフォーマンスタイムラインに作成します。 | 28 | 12 | 38 | 11 | 28 | 11 |
measure (measureOptions parameter) `measureOptions` パラメータ | 77 | 79 | 103 | 14.1 | 77 | 14.5 |
measure (returns performancemeasure) `PerformanceMeasure` を返す | 78 | 79 | 103 | 14.1 | 78 | 14.5 |
| performance.now() メソッドは高解像度のタイムスタンプをミリ秒で返します。これは Performance.timeOrigin (ウィンドウコンテキストではナビゲーションを開始した時刻、 Worker および ServiceWorker コンテキストではワーカーを実行した時刻)からの経過時間を表します。 | 24 | 12 | 15 | 8 | 25 | 9 |
| timeOrigin は Performance インターフェイスの読み取り専用プロパティで、パフォーマンス関連のタイムスタンプのベースラインとして使用する高解像度のタイムスタンプを返します。 | 62 | 16 | 53 | 15 | 62 | 15 |
| toJSON() は Performance インターフェイスのメソッドで、Serializationです。パフォーマンスオブジェクトのプロパティの JSON 表現を返します。 | 56 | 12 | 25 | 14.1 | 56 | 14.5 |
worker_support 労働者で利用可能 | 30 | 14 | 34 | 11 | 30 | 11 |
| PerformanceEntry オブジェクトは、パフォーマンスタイムラインの一部である単一のパフォーマンス指標をカプセル化します。 | 46 | 12 | 35 | 11 | 46 | 11 |
| duration プロパティは、PerformanceEntryの時間であるDOMHighResTimeStampを返します。このプロパティの意味は、この項目の PerformanceEntry.entryType の値によって異なります。 | 28 | 12 | 35 | 11 | 28 | 11 |
| entryType プロパティは読み取り専用で、この項目が表すパフォーマンス指標の種類を表す文字列です。 | 28 | 12 | 35 | 11 | 28 | 11 |
| name は PerformanceEntry インターフェイスの読み取り専用プロパティで、パフォーマンス項目の名前を表す文字列です。これは識別子の役割を果たしますが、一意である必要はありません。値はサブクラスに依存します。 | 28 | 12 | 35 | 11 | 28 | 11 |
| startTime プロパティは読み取り専用で、PerformanceEntryのうち最初に記録された DOMHighResTimeStampを返します。このプロパティの意味は、この項目の PerformanceEntry.entryType の値によって異なります。 | 28 | 12 | 35 | 11 | 28 | 11 |
| toJSON() メソッドはSerializationで、この PerformanceEntry オブジェクトの JSON 表現を返します。 | 45 | 16 | 35 | 11 | 45 | 11 |
worker_support 労働者で利用可能 | 62 | 15 | 60 | 11 | 62 | 11 |
| PerformanceMark は PerformanceEntry オブジェクトのうち PerformanceEntry.entryType が "mark" を持つインターフェイスです。 | 28 | 12 | 38 | 11 | 28 | 11 |
| 読み取り専用の detail プロパティは、(Performance.mark または PerformanceMark.PerformanceMark コンストラクターを使用して)構築時にマークに記載された任意のメタデータを返します。 | 78 | 79 | 101 | 14.1 | 78 | 14.5 |
| PerformanceMark() コンストラクターは、指定された名前のDOMHighResTimeStampを作成します。 | 76 | 79 | 101 | 14.1 | 76 | 14.5 |
| PerformanceMeasure は、PerformanceEntry オブジェクトのうち PerformanceEntry.entryType が "measure" であるものの抽象インターフェイスです。この型の項目は、Performance.measure を呼び出して、ブラウザーのパフォーマンスタイムラインの 2 つのマークの間の名前付き DOMHighResTimeStamp (範囲) を追加することによって作成されます。 | 25 | 12 | 38 | 11 | 25 | 11 |
| 読み取り専用の detail プロパティは、(Performance.measure を使用して)構築時にマークに記載された任意のメタデータを返します。 | 78 | 79 | 103 | 14.1 | 78 | 14.5 |
| PerformanceObserver インターフェイスは、パフォーマンス測定イベントを監視し、ブラウザーのパフォーマンスタイムラインに記録されるものとして、新しいPerformanceEntryの通知を受けるために使用されます。 | 52 | 79 | 57 | 11 | 52 | 11 |
| disconnect() は PerformanceObserver インターフェイスのメソッドで、パフォーマンスオブザーバーがPerformanceEntryイベントを受け取らないようにするために使用されます。 | 52 | 79 | 57 | 11 | 52 | 11 |
| observe() は PerformanceObserver インターフェイスのメソッドで、観測するパフォーマンス項目型のセットを指定します。 | 52 | 79 | 57 | 11 | 52 | 11 |
| PerformanceObserver() コンストラクターは、新しい PerformanceObserver オブジェクトを、指定されたオブザーバー callback を使用して作成します。オブザーバーコールバックは、PerformanceEntryが登録されたPerformanceEntry.entryTypeに対して記録されたときに、PerformanceObserver.observe メソッドを介して呼び出されます。 | 52 | 79 | 57 | 11 | 52 | 11 |
PerformanceObserver (droppedEntriesCount) 実験的 `droppedEntriesCount()` パラメータ | 95 | 95 | | | 95 | |
| supportedEntryTypes は PerformanceObserver インターフェイスの静的読み取り専用プロパティで、このユーザーエージェントが対応している PerformanceEntry.entryType 値の配列を返します。 | 73 | 79 | 68 | 13 | 73 | 13 |
| takeRecords() は PerformanceObserver インターフェイスのメソッドで、パフォーマンスオブザーバーに格納されているPerformanceEntryの現在のリストを空にして返します。 | 65 | 79 | 60 | 15 | 65 | 15 |
worker_support 労働者で利用可能 | 62 | 79 | 57 | 11 | 62 | 11 |
| PerformanceObserverEntryList インターフェイスは、PerformanceObserver.observe メソッドを介して明示的に監視された PerformanceEntry のリストです。 | 52 | 79 | 57 | 11 | 52 | 11 |
| getEntries() は PerformanceObserverEntryList インターフェイスのメソッドで、明示的に監視されたPerformanceEntryオブジェクトのリストを返します。このリストのメンバーは、PerformanceObserver.observe メソッドを呼んで指定されたPerformanceEntry.entryTypeのセットによって決定されます。このリストは、オブザーバーのコールバック関数(コールバックの最初の引数)で利用できます。 | 52 | 79 | 57 | 11 | 52 | 11 |
| getEntriesByName() は PerformanceObserverEntryList インターフェイスのメソッドで、指定された名前 (PerformanceEntry.name) と項目型 (PerformanceEntry.entryType) について、明示的に監視された PerformanceEntry オブジェクトのリストを返します。リストのメンバーは、PerformanceObserver.observe メソッドを呼び出す際に指定されたPerformanceEntry.entryTypeの集合によって決定されます。 このリストは、オブザーバーのコールバック関数(コールバックの最初の引数)で利用できます。 | 52 | 79 | 57 | 11 | 52 | 11 |
| getEntriesByType() は PerformanceObserverEntryList インターフェイスのメソッドで、指定されたPerformanceEntry.entryTypeの、明示的に監視されたPerformanceEntryオブジェクトのリストを返します。リストのメンバーは、PerformanceObserver.observe メソッドを呼び出す際に指定されたPerformanceEntry.entryTypeの集合によって決定されます。 このリストは、オブザーバーのコールバック関数(コールバックの最初の引数)で利用できます。 | 52 | 79 | 57 | 11 | 52 | 11 |
| その他 | ||||||
| Timing-Allow-Origin レスポンスヘッダーは、 Resource Timing API の機能を介して取得された属性の値の表示を許可されているオリジンを指定します。そうでない場合、クロスオリジンの制限によりゼロとして報告されます。 | 54 | 79 | 45 | 11 | 54 | 11 |
- このバージョンで機能が削除されました (29)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (29)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (29)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (29)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (36)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (36)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (36)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (36)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (36)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (36)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (28)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (28)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (28)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (28)
- ベンダープレフィックス付きで対応: webkit (25)
- このバージョンで機能が削除されました (24)
- ベンダープレフィックス付きで対応: webkit (21)
- Firefox 57.0.4 では、精度が 20 マイクロ秒に低下しました。
- Firefox 59では、精度が2ミリ秒に低下しました。
- Firefox 60 では、精度が 1 ミリ秒に向上しました。
- ベンダープレフィックス付きで対応: webkit (25)
- ベンダープレフィックス付きで対応: webkit (25)
実務での使いどころ
-
Performance の活用
Performance インターフェイスは、現在のページのパフォーマンス関連情報へのアクセスを提供します。
注意点
- 古いブラウザでは対応していない場合がある。
実装メモ
- 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。