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();
}

マルコの解決策は良いものです。jvisualvm でシナリオをテストしたところ、ガベージ コレクションによって問題が解決されたことがわかりました。

Rhinoガベージコレクションの動作

4

1 に答える 1

1

クリーンアップは必要ないと思いますが、心配を払拭したい場合は、これをテストするのは非常に簡単です. 投稿した例の周りに無限ループを書いて、しばらく待ちます。プロセスを監視することもできjvisualvmます。

于 2013-06-14T13:30:55.287 に答える