DXライブラリを使用したゲームが異常にメモリをとる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
白鳥(しらとり)
記事: 6
登録日時: 11年前

DXライブラリを使用したゲームが異常にメモリをとる

#1

投稿記事 by 白鳥(しらとり) » 11年前

失礼します
DXライブラリを使用してゲームを作っている時に、時間が経つにつれカーソルを動かすだけでもカクカクするようになりました
不思議に思いタスクマネージャーを開いてみると基本1.2GB位しか使用してなかったメモリが3.6GBくらいまで上がっていました。
whileループ内ではメモリ領域をとるようなことはしていないつもりなのですが…
なにか解決策に心当たりがある方がいましたら是非教えて下さい。
なにか足りない情報があれば書いてもらえれば補足します

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: DXライブラリを使用したゲームが異常にメモリをとる

#2

投稿記事 by みけCAT » 11年前

よくあるパターンとしては、ループ内で毎回LoadGraphしているということがあります。
whileループ内ではメモリ領域をとるようなことはしていないけど、forループ内でメモリ領域をとっているということではありませんか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

白鳥(しらとり)
記事: 6
登録日時: 11年前

Re: DXライブラリを使用したゲームが異常にメモリをとる

#3

投稿記事 by 白鳥(しらとり) » 11年前

みけCATさん
返信ありがとうございます
LoadGraph系は別関数にまとめてwhileループ外にあります
forループは今回は使ってないです…
whileループの中は基本的にDrawGraphなどメモリに保存したものを使う系ですね

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: DXライブラリを使用したゲームが異常にメモリをとる

#4

投稿記事 by みけCAT » 11年前

単に大量の領域を確保しているということは無いですか?
たとえば、20000x20000のint型(32ビットと仮定)二次元配列は約1.5GBになります。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

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

Re: DXライブラリを使用したゲームが異常にメモリをとる

#5

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

やっていないつもりと、実際にやっていないかの保証の差はテストして初めて保証できます。
本当にLoadGraphを通っていないかブレークポイントで確認してみてはどうでしょうか?
LoadGraph()がある関数全てにブレークポイントを貼ってみて下さい。

あと音楽系でも間違うとメモリをリークするのでそちらも確認を。
【補足】
新たにハンドルを取得するモノ全てを疑って下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

白鳥(しらとり)
記事: 6
登録日時: 11年前

Re: DXライブラリを使用したゲームが異常にメモリをとる

#6

投稿記事 by 白鳥(しらとり) » 11年前

みけCATさん
softya(ソフト屋)さん
返信ありがとうございます
2次元配列は使ってないですし、変数もi合計して30ないので大丈夫だと思います
ブレークポイント初めて使ってみたので正しい使い方かはわかりませんが、全てに貼ってみてすべて通過は1回でした
新たにハンドルを取得するものというと…MakeScreenは入りますか?
MakeScreenはwhileループに入ってるのでもしかしたらそれかもしれないです

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

Re: DXライブラリを使用したゲームが異常にメモリをとる

#7

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

MakeScreenもハンドルを生成するものです。つまりメモリを消費します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

白鳥(しらとり)
記事: 6
登録日時: 11年前

Re: DXライブラリを使用したゲームが異常にメモリをとる

#8

投稿記事 by 白鳥(しらとり) » 11年前

softya(ソフト屋)さん
MakeScreenをwhileループ外に出したらメモリ消費が収まりました
お二方、本当にありがとうございました

閉鎖

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