Node.js 追踪对象
追踪对象 ( 在 v10.0.0 中添加)用于一组类别,以启用和禁用追踪。创建跟踪事件后,通过调用 tracing.enable()方法禁用跟踪对象,然后将类别添加到启用的跟踪集中,并可通过调用 tracing.categories 进行访问。
下面提到一些追踪对象:
-
tracing . categories(在 v10.0.0 中添加) : 对象是“trace_events”模块的内置应用程序编程接口,该接口返回 trace 事件类别,该类别是该 Tracing 对象所覆盖的逗号分隔列表。
*语法:*
js tracing.categories
*参数:*该对象不接受上述任何参数。
*返回值 < 字符串* > : 返回以逗号分隔的跟踪事件类别列表。 2. *【tracing . disable()】(在 v10.0.0 中增加) : 对象是‘trace _ events’模块的内置应用编程接口,用于禁用之前通过 tracing.enable() 方法启用的 Tracing 对象。***
**语法:****
js **tracing.disable()**
**参数:该对象不接受任何参数。****
**返回值:不返回值,而是禁用跟踪事件。****
-
**【tracing.enable()】(在 v10.0.0 中添加) : 对象是“trace_events”模块的内置应用程序编程接口,该接口为之前通过 tracing . enable()方法启用的类别集启用 Tracing 对象。****
**语法:****
js **tracing.enable()**
**参数:该对象不接受任何参数。****
**返回值:不返回值,而是启用跟踪事件。* 4. tracing . enabled(在 v10.0.0 中添加) : 此对象跟踪 trace 事件是启用还是禁用,并相应地返回布尔值。*
**语法:****
js **tracing.enabled**
**参数:该对象不接受任何参数。****
**返回值 < 布尔 > : 仅当追踪对象已启用时才返回真。****
*下面的程序说明了 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**
**输出:****
*跟踪{已启用:true,类别:' ' node.perf.usertiming,v8' } 跟踪{已启用:true,类别:' ' node,node.promises.rejections' } 节点,node.perf.usertiming,node . promises . rejects,v8 node.perf.usertiming,v8*
**示例 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**
**输出:****
****> >跟踪{已启用:false,类别:' ' myapp.category,…。,node . perf . time rify ' }
myapp . category,v8,…..,node . perf . time rify false my app . category,v8,…,node . perf . time rify true { node timing:{ name:' node ',…loopExit: -1 }, time origin:1596967720328.603 }****
*浏览器中的追踪*:在谷歌 Chrome 中输入 URLChrome://追踪 。现在,单击加载按钮,加载文件进行跟踪。**
**参考:T2】https://nodejs.org/api/tracing.html#tracing_tracing_object****
版权属于:月萌API www.moonapi.com,转载请注明出处