3

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

犀牛垃圾收集在行动

4

1 回答 1

1

我相信不需要清理,但如果你想消除任何顾虑,这很容易测试。只需围绕您发布的示例编写一个无限循环并等待一段时间。您也可以监视该过程jvisualvm

于 2013-06-14T13:30:55.287 回答