我在一个项目中使用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 测试了这个场景,发现垃圾收集解决了这个问题。