4

我遇到的问题似乎与 Python 和 PyV8 的垃圾收集交互方式有关。我通过禁用 python 的垃圾收集暂时解决了这个问题,并在没有运行 JavaScript 时每隔几秒调用gc.collect一次PyV8.JSEngine.collect。但是,这似乎是一个非常骇人听闻的解决方案……特别是,我担心PyV8可能会决定在不合时宜的时间收集并导致问题,无论如何。有什么办法可以永久禁用 PyV8 的自动垃圾收集,至少在我有几天时间来弄清楚到底发生了什么并真正解决问题之前?

4

1 回答 1

4

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

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

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

于 2013-07-11T15:19:32.660 回答