javascript - PyV8 禁用自动垃圾收集

标签 javascript python garbage-collection v8 pyv8

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

最佳答案

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

在V8的源码中,编辑src/heap.cc,在Heap::CollectGarbage的开头加入return语句。

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

关于javascript - PyV8 禁用自动垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17006134/

相关文章:

python - 如何使用 BeautifulSoup 从源代码获取数组数据?

python - 如何修复 <urlopen 错误 [SSL : CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl. c :833)> in Python?

c# - 如何从另一个集合中生成游戏实体集合而不产生垃圾?

java - 如何确保 Java 中的 String 对象被垃圾回收

多个输入控件上的 Javascript 验证

javascript - .each() 中的 setInterval 仅适用于最后一个间隔?

javascript - 如何在 JQuery 中按字符串日期对选择下拉列表进行排序

javascript - 在 php 页面上如何使用 mysql 在第 n 行之后插入行

python - 如何在python中加载Electron + EEL

c# - 使用围绕对话框形式的语句来确保垃圾收集