PyV8禁用自动垃圾收集

时间:2013-06-09 03:30:10

标签: javascript python garbage-collection v8 pyv8

我遇到的问题似乎与Python& amp; PyV8的垃圾收集互动。我通过禁用python的垃圾收集暂时解决了这个问题,并且在没有运行JavaScript时每隔几秒就调用gc.collectPyV8.JSEngine.collect。然而,这似乎是一个非常糟糕的修复......特别是,我担心PyV8可能会决定在不合时宜的时间收集并导致问题。有没有什么办法可以很好地禁用PyV8的自动垃圾收集,至少在我花几天时间来确定究竟发生了什么并从而真正解决问题之前呢?

1 个答案:

答案 0 :(得分:4)

可以通过更改V8的源代码来禁用垃圾收集。

在V8的源代码中,编辑src / heap.cc,并在Heap :: CollectGarbage的开头放置一个return语句。

除此之外,它是不可能的(AFAICT):当V8即将耗尽内存时,它将始终调用垃圾收集。没有(可配置的)方法没有这样做。