Electron参考手册
内容追踪 | contentTracing
内容追踪 | contentTracing
从Chromium的内容模块收集跟踪数据,以查找性能瓶颈和缓慢的操作。
过程:主
该模块不包含Web界面,因此您需要chrome://tracing/在Chrome浏览器中打开并加载生成的文件以查看结果。
注意: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)
})
})
Methods
contentTracing模块具有以下方法:
contentTracing.getCategories(callback)
-
callbackFunction-
categoriesString[]
-
获取一组类别组。类别组可以在新代码路径到达时更改。
一旦所有子进程已经确认getCategories请求,callback就用一组类别组来调用该请求。
contentTracing.startRecording(options, callback)
-
optionsObject-
categoryFilterString -
traceOptionsString
-
-
callbackFunction
开始在所有进程上录制。
只要收到EnableRecording请求,录制就立即在本地和异步地在子进程上立即开始。callback一旦所有子进程已经确认startRecording请求,将会调用它。
categoryFilter是一个过滤器,用于控制应跟踪哪些类别组。过滤器可以有一个可选的-前缀来排除包含匹配类别的类别组。不支持在同一列表中包含和排除类别模式。
例子:
-
test_MyTest*, -
test_MyTest*,test_OtherStuff, "-excluded_category1,-excluded_category2
traceOptions控制启用哪种跟踪,这是一个逗号分隔的列表。可能的选项是:
record-until-fullrecord-continuouslytrace-to-consoleenable-samplingenable-systrace
前3个选项是跟踪记录模式,因此是互斥的。如果traceOptions字符串中出现多个跟踪记录模式,则最后一个优先。如果没有指定任何跟踪记录模式,则记录模式为record-until-full。
跟踪选项将首先被重置为默认选项(record_mode设置为record-until-full,enable_sampling并enable_systrace设置为false),然后再traceOptions应用解析的选项。
contentTracing.stopRecording(resultFilePath, callback)
-
resultFilePathString -
callbackFunction-
resultFilePathString
-
停止在所有进程上录制。
子进程通常高速缓存跟踪数据,并且很少刷新并将跟踪数据发送回主进程。这有助于最小化跟踪的运行时间开销,因为通过IPC发送跟踪数据可能是一项昂贵的操作。所以,为了结束跟踪,我们必须异步地要求所有子进程刷新任何挂起的跟踪数据。
一旦所有的子进程已经确认了stopRecording请求,callback将会被一个包含跟踪数据的文件调用。
跟踪数据resultFilePath如果不是空的或写入临时文件将被写入。callback如果不是,实际的文件路径将被传递给它null。
contentTracing.startMonitoring(options, callback)
-
optionsObject-
categoryFilterString -
traceOptionsString
-
-
callbackFunction
开始监视所有进程。
只要收到startMonitoring请求,监控立即在本地和异步的子进程上立即开始。
一旦所有的子进程已经确认了这个startMonitoring请求,callback就会被调用。
contentTracing.stopMonitoring(callback)
-
callbackFunction
Stop monitoring on all processes.
一旦所有的子进程已经确认stopMonitoring了callback被调用的请求。
contentTracing.captureMonitoringSnapshot(resultFilePath, callback)
-
resultFilePathString -
callbackFunction-
resultFilePathString
-
获取当前监控跟踪数据。
子进程通常高速缓存跟踪数据,并且很少刷新并将跟踪数据发送回主进程。这是因为通过IPC发送跟踪数据可能是一项昂贵的操作,我们希望避免跟踪造成不必要的运行时间开销。所以,为了结束跟踪,我们必须异步地要求所有子进程刷新任何挂起的跟踪数据。
一旦所有的子进程已经确认了这个captureMonitoringSnapshot请求,callback就会用一个包含跟踪数据的文件来调用它。
contentTracing.getTraceBufferUsage(callback)
-
callback功能-
value数 -
percentage数
-
获取跟踪缓冲区进程的最大用量占满状态的百分比。当TraceBufferUsage值被确定时,callback被调用。
| 内容追踪 | contentTracing | ||
|---|---|---|
| 内容追踪 | contentTracing | 详细 |
Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。
| 主页 | https://electron.atom.io/ |
| 源码 | https://github.com/electron/electron |
| 发布版本 | 1.7.9 |
加载中,请稍侯......