跳到主要内容
CNode

Node通过--expose-gc进行手动内存回收,它是采用什么方式?

问答
Rrongwj发布于 10 年前最后回复 10 年前
6114600

指定--expose-gc参数后 通过global.gc()触发的是Scavenge算法回收内存,还是Mark-Sweep & Mark-Compact,或者根据不同的情况,选择不同的算法。

查看回复

回复 (6)

C
captainblue2013#110 年前

静观其变 自豪地采用 CNodeJS ionic

A
alsotang#210 年前

@JacksonTian

I
im-here#310 年前

坐等

Y
yjhjstz#410 年前
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。

R
rongwj#510 年前

@yjhjstz 谢谢,有什么方法可以改变吗?

Y
yjhjstz#610 年前

默认是 false, 试试传 true, 目前是不推荐使用, 如果有内存压力,还是要找到是否有泄露,或者找到内存占用情况。

参与回复

登录后即可参与回复。登录