メインコンテンツへスキップ

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>を返します - トレースバッファの最大使用量のvaluepercentageを含むオブジェクトで解決します

  • value number
  • percentage number

フル状態に対するパーセンテージとして、トレースバッファのプロセス全体の最大使用量を取得します。