メモリ使用量が大きくなる原因
Posted: 2011年1月23日(日) 18:26
はじめまして、私は簡単?なGUI操作を行うプログラムをDxライブラリで製作しています。 今回そのプログラムのテスト時に非常にメモリを食う箇所がありました。(監視は大雑把ですがタスクマネージャーです) イカにプログラムの構造を書いておきます。
マウスの座標を調べ、画面上のボタンがクリックされるのを待ちます。クリックされると処理番号がprocess変数に代入されて別々の処理が実行されていき最後にデフォルトの処理番号に戻されます。
process =1: /*処理番号の初期化(デフォルト)*/
while( !ProcessMessage( ) ){ /*メインループです*/
Mouse_Click( mouse_x, mouse_y ); /*この関数でprocess変数を変更していきます。*/
switch( process ){
case 1:
/*デフォルト処理*/
case 2:
/*番号2番の処理*/
(略)
}
}
このような構造でGUI操作を行うのですが、デフォルトではなんらメモリに変化はありません。。。しかしボタンを押して処理を呼び出すと毎回メモリが増加します。各処理の最後はメモリの後始末(mallocで確保しております)を行っているにもかかわらずデフォルトに戻るときに使用量が減ってくれません(泣)・・・・ボタンを押してデフォルトに戻るの繰り返しをする度に増加する一方なのです。
質問:どうしてメモリが増加してて、解放しているのに減少しないのか? どなたかアドバイスできる方よろしくお願いします。!!
マウスの座標を調べ、画面上のボタンがクリックされるのを待ちます。クリックされると処理番号がprocess変数に代入されて別々の処理が実行されていき最後にデフォルトの処理番号に戻されます。
process =1: /*処理番号の初期化(デフォルト)*/
while( !ProcessMessage( ) ){ /*メインループです*/
Mouse_Click( mouse_x, mouse_y ); /*この関数でprocess変数を変更していきます。*/
switch( process ){
case 1:
/*デフォルト処理*/
case 2:
/*番号2番の処理*/
(略)
}
}
このような構造でGUI操作を行うのですが、デフォルトではなんらメモリに変化はありません。。。しかしボタンを押して処理を呼び出すと毎回メモリが増加します。各処理の最後はメモリの後始末(mallocで確保しております)を行っているにもかかわらずデフォルトに戻るときに使用量が減ってくれません(泣)・・・・ボタンを押してデフォルトに戻るの繰り返しをする度に増加する一方なのです。
質問:どうしてメモリが増加してて、解放しているのに減少しないのか? どなたかアドバイスできる方よろしくお願いします。!!