変数を空にするには

解決


モモンガ  2003-03-23 02:11:56  No: 3208  IP: [192.*.*.*]

普通のString変数にTimerコンポーネントを使って、文字列をどんどん入れて
いくコードを書きました。
これがかなりメモリを喰っているようでして。
ルーチンの終了を待たず、途中で変数内を空にする方法がありますでしょう
か?。

よろしくお願いします。

編集    削除
たかみちえ  URL  2003-03-23 04:04:00  No: 3209  IP: [192.*.*.*]

空文字('')を代入すれば?
  とはいえ、これでちゃんとメモリ領域まで開放されるかどうかわかりませんけど。


  あとは、あまりにメモリが多くなってしまうようならば、別の方法を考えてみるのもありかもしれません。
(圧縮するとか、ファイルに保存するとか、無駄を省くとか)
  タイマーでそんなにメモリを使ってしまうとなると、ちょっと深刻かもしれません。

編集    削除
モモンガ  2003-03-23 17:29:19  No: 3210  IP: [192.*.*.*]

レス、ありがとうございます。
今作っているのがタイマーで0.2秒毎に他アプリを監視するソフトなのです
が、Win2000のタスクマネージャで見てみると、どんどんメモリ容量が多く
なっていきます。1時間ほっておいたら30,000kbまで膨らみました。

私はプログラムの経験が浅いのですが、やはり、このようなソフトは良く
ないですよね。
やはり監視方法を再検討するべきな気がしてきました。

編集    削除
たかみちえ  URL  2003-03-23 17:38:04  No: 3211  IP: [192.*.*.*]

> 1時間ほっておいたら30,000kbまで膨らみました。
  それは、どこかでメモリリークしているんじゃないでしょうか?
いくらなんでも、20メガ以上の文字列変数をタイマーで使うということは考えられませんし…。
  MemCheckなどのモジュールを使ってみてはどうでしょうか?
http://www.yks.ne.jp/~hori/

編集    削除
モモンガ  2003-03-23 22:16:26  No: 3212  IP: [192.*.*.*]

メモリリークですか。。
お恥ずかしながら、今回、初めて知った用語です。
さっそく試して、コードを見直してみます。
ありがとうございました。

編集    削除