• ベストアンサー

メモリの解放の仕方

恐れ入ります。 メモリを解放するとはどういうことなんでしょうか? for loopをくりかえしてるうちにどんどんどんどんメモリの使用率があがっちゃって。おそらくメモリを解放すればあがらなくなるとおもうのですがその解放の仕方がよくわかりません。そもそもメモリとvbの関係ってどういう関係なんですか?おしえてください。お願いします。

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

  • ベストアンサー
  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

システム(Windows)から確保したメモリ領域をシステムに返却するということですね。一般的には、変数などで領域を確保したものを解放することを指します。 VBでは、メモリの確保と解放は自動的にされていて、プログラム上で意識することはありません。たとえば、プロシージャレベルの変数だとプロシージャが呼び出されたときに自動的に確保されてプロシージャを抜ける時に解放されています。 V C言語だと、変数の確保をする命令もありますし解放する命令があります。メモリを確保だけして解放しないと、繰り返し実行させている内にメモリが足りなくなります。これをメモリがリークしている、と言います。 #VC.netだと自動化されているらしい(未確認)

googole
質問者

お礼

お返事ありがとうございます。 for loop の箇所を別のプロシージャにて処理させるようにするとメモリが60%おさえることができるようになりました。まさにGJでした。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • sh-
  • ベストアンサー率29% (13/44)
回答No.3

メモリに関しては、ガベージコレクションにより自動解放される仕様になっています。 VB.NETであれば明示的に解放させることもできますが、これで問題がすべて解決されることはないと思います。 メモリ使用量だけにとらわれず、設計に問題がないかどうかも含めて検討してみてはいかがでしょう。

参考URL:
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/ObjectDispose/
googole
質問者

お礼

ありがとうございます。設計に問題ですか・・おそらく問題ありまくりですね。でもスキルがないので判断できないっす。しかも人にいえないようなプログラムなのできくこともできないっす。

すると、全ての回答が全文表示されます。
  • m2m10
  • ベストアンサー率0% (0/11)
回答No.2

こんちは  私はフリーでメモリの掃除屋さん  を常駐しています。   残りのメモリ量で掃除します。 http://ringonoki.net/tool/memo/souziya.html

googole
質問者

お礼

お返事ありがとうございます。 これだと掃除できないんですよね・・・泣

すると、全ての回答が全文表示されます。

関連するQ&A