我正在开发的一个应用程序嵌入了V8以进行脚本编写。为了节省内存,我想在不需要时关闭脚本组件,但由于某种原因,内存永远不会返回给操作系统。
这是我尝试过的:
1. 在持久上下文句柄上调用 Dispose()
context.Dispose();
2.强制垃圾回收
while (!v8::V8::IdleNotification());
这些都对进程内存使用没有任何显着影响。当脚本要求内存时,我可以清楚地看到它是如何上升的,但它再也不会下降了。
我正在确定进程内存使用情况ps -o rss
。我知道如果没有分析器,就无法确定一个进程正在使用多少内存,但我确实相信当 V8 释放内存时 rss 应该会下降。