跳转到主要内容

contentTracing

从 Chromium 收集追踪数据,以查找性能瓶颈和缓慢的操作。

进程: 主进程

此模块不包含 Web 界面。要查看记录的追踪数据,请使用 追踪查看器,该查看器可在 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 字符串 (可选)

返回 Promise<string> - 在所有子进程确认 stopRecording 请求后,使用包含追踪数据的文件的路径解析

在所有进程上停止记录。

子进程通常会缓存追踪数据,并且很少刷新并将追踪数据发送回主进程。 这有助于最大限度地减少追踪的运行时开销,因为通过 IPC 发送追踪数据可能是一项代价高昂的操作。 因此,为了结束追踪,Chromium 会异步请求所有子进程刷新任何待处理的追踪数据。

追踪数据将被写入 resultFilePath。 如果 resultFilePath 为空或未提供,则追踪数据将被写入临时文件,并且 promise 将返回该路径。

contentTracing.getTraceBufferUsage()

返回 Promise<Object> - 解析为包含追踪缓冲区最大使用量的 valuepercentage 的对象

  • value 数字
  • percentage 数字

获取跨进程的追踪缓冲区最大使用量,作为完整状态的百分比。