メインコンテンツへ飛ぶ

contentTracing

Chromium からトレースデータを収集して、パフォーマンスのボトルネックや遅い操作を見つけます。

プロセス: Main

このモジュールにはウェブインターフェイスが付属していません。 記録したトレースを見るには、トレースビュアー を使用します。Chrome では chrome://tracing で利用できます。

注: アプリモジュールの 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リクエストを受信するとすぐにローカルでは即時、子プロセスでは非同期的に記録が開始されます。

記録を実行中の場合、promise はすぐに解決されます。一度に一つまでしかトレース操作は処理されません。

contentTracing.stopRecording([resultFilePath])

  • resultFilePath string (任意)

戻り値 Promise<string> - すべての子プロセスが stopRecording リクエストを確認すると、トレースデータを格納したファイルへのパスで解決します

すべてのプロセスで記録を停止します。

子プロセスは、大抵、トレースデータをキャッシュし、滅多に書き出さず、メインプロセスにトレースデータを送り返すだけです。 トレースデータをIPC越しに送信するのは高負荷な操作であるため、これはトレースのランタイムオーバーヘッドを最小化するのに役立ちます。 そのため、トレースを終了するために、Chromium はすべての子プロセスに保留中のトレースデータをフラッシュするよう非同期に要求します。

トレースデータは resultFilePath へと書き込まれます。 resultFilePath が空であるか提供されていない場合、トレースデータは一時ファイルに書き込まれ、そのパスは promise で返されます。

contentTracing.getTraceBufferUsage()

戻り値 Promise<Object> - トレースバッファの最大使用率の valuepercentage を含むオブジェクトで実行されます。

  • value number
  • percentage number

完全な形式のパーセンテージとして、トレースバッファのプロセス間の最大使用率を取得します。