Node通过--expose-gc进行手动内存回收,它是采用什么方式?
指定–expose-gc参数后 通过global.gc()触发的是Scavenge算法回收内存,还是Mark-Sweep & Mark-Compact,或者根据不同的情况,选择不同的算法。
6 回复
静观其变 自豪地采用 CNodeJS ionic
坐等
void GCExtension::GC(const v8::FunctionCallbackInfo<v8::Value>& args) {
args.GetIsolate()->RequestGarbageCollectionForTesting(
args[0]
->BooleanValue(args.GetIsolate()->GetCurrentContext())
.FromMaybe(false)
? v8::Isolate::kMinorGarbageCollection
: v8::Isolate::kFullGarbageCollection);
}
根据传参,默认是 minor gc。
@yjhjstz 谢谢,有什么方法可以改变吗?
默认是 false, 试试传 true, 目前是不推荐使用, 如果有内存压力,还是要找到是否有泄露,或者找到内存占用情况。