メモリ管理。。。orz

以前からチミチミ作っているW-ZERO3用のメーラだけど、
組み込みやったことねぇわ、C#慣れてないわ、ソケット使ったことねぇわで
苦難が続いている。

ノーマルのメールの受信まではできたと喜んで画面まわりを直して
やっと基盤ができたかなぁと思い、全体1.3M弱の添付メールを受信しようとしたら、
途中で途切れるのでさんざん直してやっと全部受信できるようになったら、
OutofMemoryエラー連発。(;つД`)

なんでか分からず、色々調査したら、1.3MサイズのメールをStringBuilderに格納した段階で3.4Mぐらい実行用メモリが減少してた。。
この時点で残6.4Mしか余っていないのでかなりの危険域。
んで挙げ句にヘッダーとデータの分解処理を見直そうと思ったんだけど、処理入った段階で、さらに4M強減り、残1.9M・・・・orz
だめだこりゃ。。
内部がUTF-8だからかなぁ。。3倍だし。
メールデータはメモリ上だけでもASCIIで扱う必要があるのか、OSがUnicodeだからそもそも無理なのか。。(よく分かってない)

起動時:9M
メール全受信時:6.4M
分割処理時:1.9M

受信メール1通で7M以上の使用。明らかにダメダメだ。。。
うかつに変数にも入れられやしない。その時点で3M減るから。。

ガベージコレクションを強制解放しても変わらない(というか増える)からどっか作りの根本が×なんだろうな。
全体の構成見直すしかないのか。。。つーか、このご時世にここまでシビアに考えないといけないというのがつらい。

というか、だ。

実行用メモリがデフォでしかなく、
アプリ立ち上げては落としてるとドンドンドンドンドンドンドンドン減って増えないってのはどうなの?
平気で4Mとか減るし。

C#だからかな。。MFCでやれってのか。。うぅ。。挫折しそうだ。