通过使用perf_hooks我们可以获得一些关于 NodeJS 中垃圾收集的信息。PerformanceObserver我们可以像下面这样在每个垃圾收集(?)上使用哪个调用来使用它。
const obs = new perf_hooks.PerformanceObserver(list => {
console.log(list.getEntries()[0]);
});
obs.observe({ entryTypes: ['gc'] });
Run Code Online (Sandbox Code Playgroud)
这也是来自 console.log 的响应:
PerformanceEntry {
name: 'gc',
entryType: 'gc',
startTime: 1150138386.4544,
duration: 0.08009982109069824,
detail: { kind: 4, flags: 0 }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试在网上查找有关detail.kind此回复内容的信息。有人可以向我解释它是什么吗?
我发现NodeJS中有四种gc:
perf_hooks.constants.NODE_PERFORMANCE_GC_MAJOR
perf_hooks.constants.NODE_PERFORMANCE_GC_MINOR
perf_hooks.constants.NODE_PERFORMANCE_GC_INCREMENTAL
perf_hooks.constants.NODE_PERFORMANCE_GC_WEAKCB
Run Code Online (Sandbox Code Playgroud)
参考(https://nodejs.org/docs/latest-v16.x/api/perf_hooks.html#performanceentrykind)
但这些类型的含义是什么?
谢谢你的帮助!
PS:duration确定操作执行了多长时间?