からクラスを:メモリリークを作成するのは簡単ですので、なGroovy:再コンパイルしたファイルとメモリリーク<a href="http://docs.groovy-lang.org/latest/html/documentation/#groovyclassloader" rel="nofollow noreferrer">ref-doc</a>あたりとして
はA GroovyClassLoaderはそれが作成されたすべてのクラスの参照を保持します。特に、同じスクリプトを2回実行すると、文字列の場合は2つの異なるクラスが得られます。 MyClassの等しい
GroovyCodeSource src = new GroovyCodeSource(file) src.cachable = false Class clazz = groovyClassLoader.parseClass src Class clazz1 = groovyClassLoader.parseClass src log.info "$clazz <=> $clazz1 equal: ${clazz == clazz1}"
ログ出力が常にある
クラスMyClassの< =>クラス:偽
を私が解析するためのソースとしてファイルを使用していますが、オフキャッシュなっ
私がラインsrc.cachable = false
にコメントすると、クラスインスタンスbeco私は平等ですが、基礎となるファイルが変更されても再コンパイルされません。
質問:私はどのようにメモリリークを作成せずにクラスを正しく再コンパイルできますか?