メモリ使用量が大きくなる原因

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
type

メモリ使用量が大きくなる原因

#1

投稿記事 by type » 13年前

はじめまして、私は簡単?なGUI操作を行うプログラムをDxライブラリで製作しています。 今回そのプログラムのテスト時に非常にメモリを食う箇所がありました。(監視は大雑把ですがタスクマネージャーです) イカにプログラムの構造を書いておきます。

 マウスの座標を調べ、画面上のボタンがクリックされるのを待ちます。クリックされると処理番号がprocess変数に代入されて別々の処理が実行されていき最後にデフォルトの処理番号に戻されます。

process =1: /*処理番号の初期化(デフォルト)*/
while( !ProcessMessage( ) ){ /*メインループです*/
Mouse_Click( mouse_x, mouse_y ); /*この関数でprocess変数を変更していきます。*/
switch( process ){
case 1:
/*デフォルト処理*/
case 2:
/*番号2番の処理*/
(略)
}
}

このような構造でGUI操作を行うのですが、デフォルトではなんらメモリに変化はありません。。。しかしボタンを押して処理を呼び出すと毎回メモリが増加します。各処理の最後はメモリの後始末(mallocで確保しております)を行っているにもかかわらずデフォルトに戻るときに使用量が減ってくれません(泣)・・・・ボタンを押してデフォルトに戻るの繰り返しをする度に増加する一方なのです。

質問:どうしてメモリが増加してて、解放しているのに減少しないのか? どなたかアドバイスできる方よろしくお願いします。!!

アバター
a5ua
記事: 199
登録日時: 13年前

Re: メモリ使用量が大きくなる原因

#2

投稿記事 by a5ua » 13年前

これだけのプログラムでは、原因は特定できません。
現象を再現できるプログラム全体を記載したほうが、回答を得られやすいと思います。

dic
記事: 657
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: メモリ使用量が大きくなる原因

#3

投稿記事 by dic » 13年前

コード:

process =1: /*処理番号の初期化(デフォルト)*/
while( !ProcessMessage( ) ){ /*メインループです*/
Mouse_Click( mouse_x, mouse_y ); /*この関数でprocess変数を変更していきます。*/
switch( process ){
  case 1:
  /*デフォルト処理*/
  case 2:
  /*番号2番の処理*/
  (略)
  }
}
ここだけを見ると process = 1 の部分がアプリケーションが起動している間中 case 1: をとおります

けど
違うところでしょうね

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: メモリ使用量が大きくなる原因

#4

投稿記事 by softya(ソフト屋) » 13年前

DXライブラリが原因なら、何らかの画像等をロードしたままて放置しているとしか思えません。
画像とかロードしていませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

type

Re: メモリ使用量が大きくなる原因

#5

投稿記事 by type » 13年前

みなさんアドバイスありがとうございます>< しかし以前問題は解決せずです

>>softya様  画像は背景とボタンを数個はじめにLoadGraph関数でメモリに読込んでおります。何度もロードしてないはずなんですが・・・

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: メモリ使用量が大きくなる原因

#6

投稿記事 by softya(ソフト屋) » 13年前

type さんが書きました: >>softya様  画像は背景とボタンを数個はじめにLoadGraph関数でメモリに読込んでおります。何度もロードしてないはずなんですが・・・
それは実際にデバッガ等でちゃんと確認された事実でしょうか?
思い込みと実際に確認したのでは話がだいぶ違いますので、絶対確認して下さい。

それがもし問題なければ、mallocやnewのあるところを疑うしか有りませんね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Ciel
記事: 252
登録日時: 13年前

Re: メモリ使用量が大きくなる原因

#7

投稿記事 by Ciel » 13年前

実際にどれぐらいメモリ食うんですか?

どちらにしろこれだけのコードでは原因を見つけるのは難しいです。
oui C'est la Vie♪

閉鎖

“C言語何でも質問掲示板” へ戻る