contentTracing
从Chromium的内容模块收集跟踪数据,以查找性能瓶颈和缓慢的操作。
进程:主进程
该模块不包含网页接口,所以你需要在Chrome浏览器打开chrome://tracing/
页面,然后加载生成的文件来查看结果。
注意:在应用程序模块的 ready
事件触发之前,您不应该使用此模块。
const { app, contentTracing } = require('electron')
app.on('ready', () => {
const options = {
categoryFilter: '*',
traceOptions: 'record-until-full,enable-sampling'
}
contentTracing.startRecording(options, () => {
console.log('Tracing started')
setTimeout(() => {contentTracing.stopRecording('', (path) => { console.log('Tracing data recorded to ' + path)})
}, 5000)
})
})
Collect tracing data from Chromium's content module for finding performance bottlenecks and slow operations.
Process: Main
This module does not include a web interface so you need to open chrome://tracing/
in a Chrome browser and load the generated file to view the result.
Note: You should not use this module until the ready
event of the app module is emitted.
const { app, contentTracing } = require('electron')
app.on('ready', () => {
const options = {
categoryFilter: '*',
traceOptions: 'record-until-full,enable-sampling'
}
contentTracing.startRecording(options, () => {
console.log('Tracing started')
setTimeout(() => {contentTracing.stopRecording('', (path) => { console.log('Tracing data recorded to ' + path)})
}, 5000)
})
})
方法
contentTracing
模块包含以下方法:
Methods
The contentTracing
module has the following methods:
contentTracing.getCategories(callback)
callback
Function - 回调函数categories
String[]
Get a set of category groups. The category groups can change as new code paths are reached.
Once all child processes have acknowledged the getCategories
request the callback
is invoked with an array of category groups.
即将弃用
contentTracing.getCategories(callback)
callback
Functioncategories
String[]
Get a set of category groups. The category groups can change as new code paths are reached.
Once all child processes have acknowledged the getCategories
request the callback
is invoked with an array of category groups.
Deprecated Soon
contentTracing.getCategories()
Returns Promise<String[]>
- resolves with an array of category groups once all child processes have acknowledged the getCategories
request
Get a set of category groups. The category groups can change as new code paths are reached.
contentTracing.getCategories()
Returns Promise<String[]>
- resolves with an array of category groups once all child processes have acknowledged the getCategories
request
Get a set of category groups. The category groups can change as new code paths are reached.
contentTracing.startRecording(options, callback)
options
(TraceCategoriesAndOptions | TraceConfig)callback
Function
在所有进程上开始记录
一旦收到EnableRecording请求,记录立即在本地开始进行,并在子进程上异步执行。 一旦所有子进程都确认了startRecording
请求,callback
就会被调用。
即将弃用
contentTracing.startRecording(options, callback)
options
(TraceCategoriesAndOptions | TraceConfig)callback
Function
Start recording on all processes.
Recording begins immediately locally and asynchronously on child processes as soon as they receive the EnableRecording request. The callback
will be called once all child processes have acknowledged the startRecording
request.
Deprecated Soon
contentTracing.startRecording(options)
options
(TraceCategoriesAndOptions | TraceConfig)
Returns Promise<void>
- resolved once all child processes have acknowledged the startRecording
request.
在所有进程上开始记录
一旦收到EnableRecording请求,记录立即在本地开始进行,并在子进程上异步执行。
contentTracing.startRecording(options)
options
(TraceCategoriesAndOptions | TraceConfig)
Returns Promise<void>
- resolved once all child processes have acknowledged the startRecording
request.
Start recording on all processes.
Recording begins immediately locally and asynchronously on child processes as soon as they receive the EnableRecording request.
contentTracing.stopRecording(resultFilePath, callback)
resultFilePath
Stringcallback
FunctionresultFilePath
String
停止所有进程记录。
子进程通常缓存跟踪数据,并且很少清空和发送跟踪数据回到主进程。 这有助于最小化运行时间开销,因为通过IPC发送跟踪数据可能是一个开销巨大的操作。 所以,为了结束跟踪,我们必须异步地要求所有子进程清空任何等待跟踪数据。
一旦所有子进程确认了 stopRecording
请求,将传递包含跟踪数据的文件作为参数调用callback
。
如果resultFilePath
不为空,则跟踪数据会被写入该路径,否则就被写入一个临时文件。实际的文件路径如果不为null
的话就被传递给callback
函数了。
即将弃用
contentTracing.stopRecording(resultFilePath, callback)
resultFilePath
Stringcallback
FunctionresultFilePath
String
Stop recording on all processes.
Child processes typically cache trace data and only rarely flush and send trace data back to the main process. This helps to minimize the runtime overhead of tracing since sending trace data over IPC can be an expensive operation. So, to end tracing, we must asynchronously ask all child processes to flush any pending trace data.
Once all child processes have acknowledged the stopRecording
request, callback
will be called with a file that contains the traced data.
Trace data will be written into resultFilePath
if it is not empty or into a temporary file. The actual file path will be passed to callback
if it's not null
.
Deprecated Soon
contentTracing.stopRecording(resultFilePath)
resultFilePath
String
Returns Promise<String>
- resolves with a file that contains the traced data once all child processes have acknowledged the stopRecording
request
停止所有进程记录。
子进程通常缓存跟踪数据,并且很少清空和发送跟踪数据回到主进程。 这有助于最小化运行时间开销,因为通过IPC发送跟踪数据可能是一个开销巨大的操作。 所以,为了结束跟踪,我们必须异步地要求所有子进程清空任何等待跟踪数据。
Trace data will be written into resultFilePath
if it is not empty or into a temporary file.
contentTracing.stopRecording(resultFilePath)
resultFilePath
String
Returns Promise<String>
- resolves with a file that contains the traced data once all child processes have acknowledged the stopRecording
request
Stop recording on all processes.
Child processes typically cache trace data and only rarely flush and send trace data back to the main process. This helps to minimize the runtime overhead of tracing since sending trace data over IPC can be an expensive operation. So, to end tracing, we must asynchronously ask all child processes to flush any pending trace data.
Trace data will be written into resultFilePath
if it is not empty or into a temporary file.
contentTracing.startMonitoring(options, callback)
callback
FunctionObject
value
Numberpercentage
Number
获取跟踪缓冲区进程的最大使用率,以百分比表示完整状态。当 TraceBufferUsage 值被确定后, 将调用 callback
。
即将弃用
contentTracing.getTraceBufferUsage(callback)
callback
FunctionObject
value
Numberpercentage
Number
Get the maximum usage across processes of trace buffer as a percentage of the full state. When the TraceBufferUsage value is determined the callback
is called.
Deprecated Soon
contentTracing.getTraceBufferUsage()
Returns Promise<Object>
- Resolves with an object containing the value
and percentage
of trace buffer maximum usage
Get the maximum usage across processes of trace buffer as a percentage of the full state.
contentTracing.getTraceBufferUsage()
Returns Promise<Object>
- Resolves with an object containing the value
and percentage
of trace buffer maximum usage
Get the maximum usage across processes of trace buffer as a percentage of the full state.