TOP
PROFILE
MUSIC TUNE
BBS
LINK

2005年04月11日

EntLibにメモリーリーク

WorkspaceでPatch 1475が公開されました。
修正ファイルはConfigurationManager.csだけなんですが、このファイルの中でメモリーリークが発生していたということでTomは早期のパッチ適用を呼びかけてます。
これはconfiguration dataが変更された時のイベントをトラップする為にイベントハンドラを登録しているのですが、これが原因でインスタンスの参照が残り続け、結果としてガベージコレクションの対象にならないことが原因のようです。
修正PatchではConfigurationContextをひとつだけ生成するように修正されているようです。
これはConfigurationContextオブジェクトを内包するConfigurationManagerがシングルトンになった結果唯一のオブジェクトが保証されるということになります。

1800もユニットテストをやっててこんなことが!って思われるかもしれませんが、参照問題による生存期間問題やマルチスレッド下におけるロック参照問題ってのはなかなか発見し辛いもんなんですよね。(特にメモリーリークなんて有り得ない!なんて思ってる.NET/Javaが初めてのエンジニアさんなんかには・・)
C/C++経験者なら首肯して頂けると思うんですけどね(^^;

Posted by GAMMARAY at 2005年04月11日 21:36 | TrackBack
Comments
Post a comment









Remember personal info?