Skip to content

Node.js 中,trace_events 模块用于生成和收集跟踪事件,帮助开发者调试和分析应用性能。

通过跟踪事件,开发者可以了解代码执行的路径、性能瓶颈以及资源消耗情况。

1.enabled

  1. 通过命令行启用:
sh
node --trace-events-enabled

# is equivalent to

node --trace-event-categories v8,node,node.async_hooks
  1. 通过代码启用:
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)