我遇到了一个似乎与 Python 和 PyV8 的垃圾收集交互方式有关的问题。我暂时解决了这个问题,方法是禁用 python 的垃圾收集,并在没有 JavaScript 运行时每隔几秒调用一次 gc.collect
和 PyV8.JSEngine.collect
。然而,这似乎是一个非常 hackish 的修复...特别是,我担心 PyV8
可能会决定在不合时宜的时间收集并导致问题。有什么方法可以永久禁用 PyV8 的自动垃圾收集,至少在我有几天时间来弄清楚到底发生了什么,从而真正解决问题之前?
最佳答案
可以通过更改 V8 的源代码来永久禁用垃圾收集。
在V8的源码中,编辑src/heap.cc,在Heap::CollectGarbage的开头加入return语句。
除此之外,这是不可能的(AFAICT):当 V8 即将耗尽内存时,它总是会调用垃圾回收。没有(可配置的)方法可以让它不那样做。
关于javascript - PyV8 禁用自动垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17006134/