Re: TKFP.DLLの送信時メモリについて ( No.1 ) |
- 日時: 2008/01/11 23:55
- 名前: Toki◆pRU.c9X.EOI
- ご報告ありがとうございます
メモリリークの件ですが、送信時のソースを一度確認してみます。
他の原因として、ガベージコレクタが回収せずに放置している可能性がありませんか? 20M程度だとプログラムで開放しても、ガベージコレクタが改修しない可能性があります。
|
Re: TKFP.DLLの送信時メモリについて ( No.2 ) |
- 日時: 2008/01/12 10:57
- 名前: FTP初心者
- お世話になります。
アップロード後にGCの解放を行いましたが、変わりませんでした。 メモリは、転送毎に増えていきます。中止・停止するとそのメモリ消費量は、止まります。 1回に12KBを2秒後に送るため、その分累加されます。
file.ReadFrom(localPath) の後にGC解放を入れています。場所等が問題でしょうか?
意図的にアップロード部(上記コード)のみをダミーにすると、メモリの占有は止まります。
|
Re: TKFP.DLLの送信時メモリについて ( No.3 ) |
- 日時: 2008/01/13 23:59
- 名前: Toki◆pRU.c9X.EOI
- 色々と確認してみたところTKFPの内部通信ログクラスが
通信毎にメモリを消費することはわかりましたが、 それ以外では確認できませんでした。
また、ファイル情報の内部キャッシュによってメモリを消費する場合もあるようですが、 こちらは増加しつづけることは無いようです。
可能であれば次の様に処理を追加してみてください
・TKFP.IO.FileInfoのインスタンスを送信ごとに作成する ・定期的にTKFP.Net.FtpClientを切断しインスタンスを再生成する ・定期的に内部の通信ログをクリアする (FtpClient.MessageLog.Clear) ・定期的に内部のリストキャッシュをクリアする (FtpClient.ListCacheRefresh)
私の環境では通信ログのクリアだけで、メモリの消費はなくなりました
|
Re: TKFP.DLLの送信時メモリについて ( No.4 ) |
- 日時: 2008/01/15 15:18
- 名前: FTP初心者
- お世話になります。
メモリの解放を通信ログのクリアーで確認できました。 ありがとうございました。
|