📜  Node.js 跟踪对象

📅  最后修改于: 2022-05-13 01:56:30             🧑  作者: Mango

Node.js 跟踪对象

跟踪对象在 v10.0.0中添加)用于一组类别以启用和禁用跟踪。创建跟踪事件时,通过调用 tracking.enable() 方法禁用跟踪对象,然后将类别添加到启用的跟踪集中,并且可以通过调用tracking.categories访问。

下面提到了一些跟踪对象:

  1. 追踪.categories 在 v10.0.0 中添加对象是“trace_events”模块的内置应用程序编程接口,它返回跟踪事件类别,这是一个由该跟踪对象覆盖的逗号分隔列表。

    句法:

    tracing.categories

    参数:此对象不接受上述任何参数。

    返回值< 字符串 > 返回以逗号分隔的跟踪事件类别列表。

  2. 跟踪.禁用() 在 v10.0.0 中添加对象是 'trace_events' 模块的内置应用程序编程接口,它禁用之前通过tracking.enable()方法启用的跟踪对象。

    句法:

    tracing.disable()

    参数:此对象不接受任何参数。

    返回值:它不返回任何值,而是禁用跟踪事件。

  3. tracking.enable()在 v10.0.0 中添加) 对象是“trace_events”模块的内置应用程序编程接口,它为之前通过 tracking.enable() 方法启用的类别集启用跟踪对象。

    句法:

    tracing.enable()

    参数:此对象不接受任何参数。

    返回值:它不返回任何值,而是启用跟踪事件。

  4. 启用跟踪 在 v10.0.0 中添加此对象跟踪跟踪事件是启用还是禁用,并相应地返回布尔值。

    句法:

    tracing.enabled

    参数:此对象不接受任何参数。

    返回值< boolean > 仅当 Tracing 对象已启用时才返回 true。

下面的程序说明了 Node.js 中的跟踪对象:

安装 trace_events 模块:

npm install trace_events

示例 1:文件名:index.js

// Node.js program to demonstrate the 
// Tracing methods 
  
// Using require to access trace_events module 
const trace_events = require('trace_events'); 
  
const newTraceEvent1 = trace_events.createTracing({ 
categories: ['node.perf.usertiming', 'v8'] });
  
const { createTracing } = require('trace_events');
  
const newTraceEvent2 = createTracing({ 
categories: ['node', 'node.promises.rejections'] });
  
newTraceEvent1.enable();
newTraceEvent2.enable();
  
// Prints newTraceEvent1 trace event
console.log(newTraceEvent1);
  
// Prints newTraceEvent2 trace event
console.log(newTraceEvent2);
  
// Prints all enabled categories
console.log(trace_events.getEnabledCategories());
  
// Disable 'node, node.promises.rejections' category
newTraceEvent2.disable(); 
  
// Prints 'node.perf.usertiming, v8'
console.log(trace_events.getEnabledCategories());
  
// Disable 'node.perf.usertiming' category
newTraceEvent1.disable();

使用以下命令运行index.js文件:

node index.js

输出:

示例 2:文件名:index.js

// Node.js program to demonstrate the 
// Trace methods 
  
// Using require to access trace_events module 
const trace_events = require("trace_events");
  
// Tracing categories
const categories = [ 'myapp.category', 'v8', 'node', 
'node.async_hooks', 'node.promises.rejections', 'node.vm.script', 
'node.perf.usertiming', 'node.perf.timerify'];
  
// Now create tracing for custom trace category.
const newTracing = trace_events.createTracing({ categories });
  
// Printing tracing event
console.log(newTracing);
  
// Printing tracing categories
console.log(newTracing.categories);
  
// Checking wheather trace is enabled or not
console.log(newTracing.enabled);
  
// Enabling newTracing
newTracing.enable();
  
// Printing tracing categories
console.log(newTracing.categories);
  
// Checking wheather trace is enabled or not
console.log(newTracing.enabled);
  
// Do some stuff
const perf_hooks = require("perf_hooks");
perf_hooks.performance.mark("Alfa");
() => {
  perf_hooks.performance.mark("Beta");
  perf_hooks.performance.measure(
      "Alfa to Beta", "Alfa", "Beta");
};
  
// Prints performance stuff
console.log(perf_hooks.performance);
  
// Disables newTracing
newTracing.disable();

使用以下命令运行index.js文件:

node index.js
For custom tracing
node --trace-event-categories v8, node, node.async_hooks index.js

输出:

在浏览器中跟踪:在 Google Chrome 中输入 URL chrome://tracing 。现在,单击“加载”按钮,并加载文件以进行跟踪。

参考: https://nodejs.org/api/tracing.html#tracing_tracing_object