在 Node.js
中,trace_events
模块用于生成和收集跟踪事件,帮助开发者调试和分析应用性能。
通过跟踪事件,开发者可以了解代码执行的路径、性能瓶颈以及资源消耗情况。
1.enabled
- 通过命令行启用:
sh
node --trace-events-enabled
# is equivalent to
node --trace-event-categories v8,node,node.async_hooks
- 通过代码启用:
js
const trace_events = require('trace_events')
const tracing = trace_events.createTracing({
categories: ['node', 'fs', 'http']
})
tracing.enable()
// 运行一段时间后,禁用跟踪
setTimeout(() => {
tracing.disable()
}, 10000)
2.demo
js
const trace_events = require('trace_events')
// 创建一个 Tracing 对象,跟踪 node 和 http 事件
const tracing = trace_events.createTracing({ categories: ['node', 'http'] })
// 启用跟踪
tracing.enable()
const http = require('http')
const server = http.createServer((req, res) => {
res.end('Hello, world!')
})
server.listen(3030, () => {
console.log('Server is listening on port 3030')
// 模拟一些请求
http.get('http://localhost:3030', (res) => {
res.on('data', (chunk) => {
console.log(`BODY: ${chunk}`)
})
})
})
// 一段时间后禁用跟踪
setTimeout(() => {
tracing.disable()
console.log('Tracing disabled')
}, 3000)