• ベストアンサー

vb フォームを消した後のメモリ

こんにちは。 VB2010Express .NET4.0 趣味でプログラミングを始めた初心者です。 ものすごく初歩の事かと思うのですが ご教授いただければ幸いです 今作ってるプログラムには2つウィンドウがあり 1つのウィンドウAからもう1つのウィンドウBを開ける形です AからBを開いた時のタスクマネージャーで見たメモリは5600K Bで作業しているうちに14000Kとなりました それでBを閉じた後、つまりAだけになった時のメモリは14000Kでした Bを閉じたのにメモリが減らないのはなぜでしょうか。 関係あるのかは分からないのですがクラスBの変数の開放はやっています。

質問者が選んだベストアンサー

  • ベストアンサー
  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.1

メモリ管理しているだけですよ。 もう一回呼び出す可能性があるだろうから、余裕があるんならメモリ上に置いておけって感じで。 何回も呼び出す可能性のあるものをHDD上から読む込むのも時間がかかります。 メモリ管理はOS側(.Net側)の仕事なので、巨大なデータを扱うのでなければ意識しなくていいですよ。 他のプログラムを起動しまくったり、ある程度時間が立つとGCが働いて自動回収されると思います。

その他の回答 (1)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

#1 さんの回答に出てきていますが、 >GC 『ガベージコレクション』 というキーワードで調べてみるといいかも。 強制的に GC を動かすコードも用意されています。 設計思想に反するので使わない方がいいのですが、 実際に解放されるか試してみればいいでしょう。 http://www.atmarkit.co.jp/fdotnet/dotnettips/021gc/gc.html ただし、アンマネージリソースは解放されないです。 VB は外部(.NetFramework以外)の DLL とか利用する場合も 多いですし、ファイルやデータベースも普通に使うから GC あるから安心とは思わないほうがいいですが。

y_hanamura
質問者

お礼

ご回答ありがとうございました。 そんなに気にしなくてもいいようですね。 最初にご回答いただいたNo1の方をベストアンサー とさせていただきました。 お二方ともありがとうございました。

関連するQ&A