通过检查器收集跟踪事件数据


\Collect trace events data by inspector

import { Session } from 'node:inspector';
const session = new Session();
session.connect();
function post(message, data) {
 return new Promise((resolve, reject) => {
 session.post(message, data, (err, result) => {
 if (err)
 reject(new Error(JSON.stringify(err)));
 else
 resolve(result);
 });
 });
}
async function collect() {
 const data = [];
 session.on('NodeTracing.dataCollected', (chunk) => data.push(chunk));
 session.on('NodeTracing.tracingComplete', () => {
 // done
 });
 const traceConfig = { includedCategories: ['v8'] };
 await post('NodeTracing.start', { traceConfig });
 // do something
 setTimeout(() => {
 post('NodeTracing.stop').then(() => {
 session.disconnect();
 console.log(data);
 });
 }, 1000);
}
collect();'use strict';
const { Session } = require('inspector');
const session = new Session();
session.connect();
function post(message, data) {
 return new Promise((resolve, reject) => {
 session.post(message, data, (err, result) => {
 if (err)
 reject(new Error(JSON.stringify(err)));
 else
 resolve(result);
 });
 });
}
async function collect() {
 const data = [];
 session.on('NodeTracing.dataCollected', (chunk) => data.push(chunk));
 session.on('NodeTracing.tracingComplete', () => {
 // done
 });
 const traceConfig = { includedCategories: ['v8'] };
 await post('NodeTracing.start', { traceConfig });
 // do something
 setTimeout(() => {
 post('NodeTracing.stop').then(() => {
 session.disconnect();
 console.log(data);
 });
 }, 1000);
}
collect();

AltStyle によって変換されたページ (->オリジナル) /