我在一个项目中使用Rhino,这要求我创建一些ScriptableObjects,它们会被短时间使用,然后被丢弃。这样会造成内存泄漏吗?
代码是这样的:
Context cx = ContextFactory.getGlobal.enter();
try {
for (String script : Scripts.findAll()) {
Scriptable scope = cx.initStandardObjects();
// load script into scope, and do something with it.
// do I need to do any cleanup to for the scope?
}
} finally {
Context.exit();
}
Marko的解决方案很好。我用jvisualvm测试了这个场景,发现垃圾收集处理了这个问题。
答案 0 :(得分:1)
我认为不需要清理,但如果你想消除任何担忧,这很容易测试。只需在您发布的示例周围编写一个无限循环,然后等待一段时间。您也可以使用jvisualvm
监控流程。