v8.setFlagsFromString(flags)
flags<string>
v8.setFlagsFromString() 方法可用于以编程方式设置 V8 命令行标志。使用此方法时应谨慎。在虚拟机启动后更改设置可能导致不可预测的行为,包括崩溃和数据丢失;或者它可能根本不会产生任何效果。
🌐 The v8.setFlagsFromString() method can be used to programmatically set
V8 command-line flags. This method should be used with care. Changing settings
after the VM has started may result in unpredictable behavior, including
crashes and data loss; or it may simply do nothing.
可以通过运行 node --v8-options 来确定某个版本的 Node.js 可用的 V8 选项。
🌐 The V8 options available for a version of Node.js may be determined by running
node --v8-options.
用法:
🌐 Usage:
import { setFlagsFromString } from 'node:v8';
import { setInterval } from 'node:timers';
// setFlagsFromString to trace garbage collection events
setFlagsFromString('--trace-gc');
// Trigger GC events by using some memory
let arrays = [];
const interval = setInterval(() => {
for (let i = 0; i < 500; i++) {
arrays.push(new Array(10000).fill(Math.random()));
}
if (arrays.length > 5000) {
arrays = arrays.slice(-1000);
}
console.log(`\n* Created ${arrays.length} arrays\n`);
}, 100);
// setFlagsFromString to stop tracing GC events after 1.5 seconds
setTimeout(() => {
setFlagsFromString('--notrace-gc');
console.log('\nStopped tracing!\n');
}, 1500);
// Stop triggering GC events altogether after 2.5 seconds
setTimeout(() => {
clearInterval(interval);
}, 2500);const { setFlagsFromString } = require('node:v8');
const { setInterval } = require('node:timers');
// setFlagsFromString to trace garbage collection events
setFlagsFromString('--trace-gc');
// Trigger GC events by using some memory
let arrays = [];
const interval = setInterval(() => {
for (let i = 0; i < 500; i++) {
arrays.push(new Array(10000).fill(Math.random()));
}
if (arrays.length > 5000) {
arrays = arrays.slice(-1000);
}
console.log(`\n* Created ${arrays.length} arrays\n`);
}, 100);
// setFlagsFromString to stop tracing GC events after 1.5 seconds
setTimeout(() => {
console.log('\nStopped tracing!\n');
setFlagsFromString('--notrace-gc');
}, 1500);
// Stop triggering GC events altogether after 2.5 seconds
setTimeout(() => {
clearInterval(interval);
}, 2500);