contentTracing
Chromiumからトレースデータを収集して、パフォーマンスのボトルネックと遅い操作を見つけます。
プロセス: メイン
このモジュールにはWebインターフェースは含まれていません。記録されたトレースを表示するには、Chromeのchrome://tracing
で利用可能なトレースビューアを使用してください。
注: このモジュールは、appモジュールのready
イベントが発行されるまで使用しないでください。
const { app, contentTracing } = require('electron')
app.whenReady().then(() => {
(async () => {
await contentTracing.startRecording({
included_categories: ['*']
})
console.log('Tracing started')
await new Promise(resolve => setTimeout(resolve, 5000))
const path = await contentTracing.stopRecording()
console.log('Tracing data recorded to ' + path)
})()
})
メソッド
contentTracing
モジュールには次のメソッドがあります
contentTracing.getCategories()
Promise<string[]>
を返します - すべての子プロセスがgetCategories
リクエストを承認すると、カテゴリグループの配列で解決されます
カテゴリグループのセットを取得します。カテゴリグループは、新しいコードパスに到達すると変化する可能性があります。組み込みのトレースカテゴリのリストも参照してください。
注: Electronは
"electron"
というデフォルトでないトレースカテゴリを追加します。このカテゴリは、Electron固有のトレースイベントをキャプチャするために使用できます。
contentTracing.startRecording(options)
Promise<void>
を返します - すべての子プロセスがstartRecording
リクエストを承認すると解決されます。
すべてのプロセスで記録を開始します。
記録はローカルですぐに開始され、子プロセスでEnableRecordingリクエストを受信すると非同期的に開始されます。
記録がすでに実行中の場合、一度に1つのトレース操作しか進行できないため、Promiseはすぐに解決されます。
contentTracing.stopRecording([resultFilePath])
resultFilePath
string (オプション)
Promise<string>
を返します - すべての子プロセスがstopRecording
リクエストを承認すると、トレースされたデータを含むファイルへのパスで解決されます
すべてのプロセスで記録を停止します。
子プロセスは通常、トレースデータをキャッシュし、トレースデータをメインプロセスにフラッシュして送信するのはまれです。これは、IPC経由でトレースデータを送信するとコストのかかる操作になる可能性があるため、トレースのランタイムオーバーヘッドを最小限に抑えるのに役立ちます。そのため、トレースを終了するために、Chromiumはすべての子プロセスに保留中のトレースデータをフラッシュするように非同期的に要求します。
トレースデータはresultFilePath
に書き込まれます。resultFilePath
が空であるか提供されていない場合、トレースデータは一時ファイルに書き込まれ、そのパスがPromiseで返されます。
contentTracing.getTraceBufferUsage()
Promise<Object>
を返します - トレースバッファの最大使用量のvalue
とpercentage
を含むオブジェクトで解決します
value
numberpercentage
number
フル状態に対するパーセンテージとして、トレースバッファのプロセス全体の最大使用量を取得します。