我是否需要清理Rhino ScriptableObject实例?

时间:2013-06-14 13:08:23

标签: java javascript memory-leaks rhino

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

Rhino Garbage Collection in action

1 个答案:

答案 0 :(得分:1)

我认为不需要清理,但如果你想消除任何担忧,这很容易测试。只需在您发布的示例周围编写一个无限循环,然后等待一段时间。您也可以使用jvisualvm监控流程。