Node通过--expose-gc进行手动内存回收,它是采用什么方式?
指定–expose-gc参数后 通过global.gc()触发的是Scavenge算法回收内存,还是Mark-Sweep & Mark-Compact,或者根据不同的情况,选择不同的算法。
6 回复
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。