カスタム拡張スクリプトを提供できるように、ac# ベースの WebService で IronPython をホストしています。ただし、Web サービスをループで繰り返し実行して単純な負荷テストを行うと、メモリ使用量が急激に増加することがわかりました。
IronPython-1.1 は、そのオブジェクトに IDisposable を実装したので、それらが完了したら破棄できます。DLR に基づく新しい IronPython-2 エンジンには、そのような概念はありません。
私が理解したことから、ScriptEngine でスクリプトを実行するたびに、新しいアセンブリが appdomain に挿入され、アンロードできません。
これを回避する方法はありますか?