失礼します
DXライブラリを使用してゲームを作っている時に、時間が経つにつれカーソルを動かすだけでもカクカクするようになりました
不思議に思いタスクマネージャーを開いてみると基本1.2GB位しか使用してなかったメモリが3.6GBくらいまで上がっていました。
whileループ内ではメモリ領域をとるようなことはしていないつもりなのですが…
なにか解決策に心当たりがある方がいましたら是非教えて下さい。
なにか足りない情報があれば書いてもらえれば補足します
DXライブラリを使用したゲームが異常にメモリをとる
Re: DXライブラリを使用したゲームが異常にメモリをとる
よくあるパターンとしては、ループ内で毎回LoadGraphしているということがあります。
whileループ内ではメモリ領域をとるようなことはしていないけど、forループ内でメモリ領域をとっているということではありませんか?
whileループ内ではメモリ領域をとるようなことはしていないけど、forループ内でメモリ領域をとっているということではありませんか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: DXライブラリを使用したゲームが異常にメモリをとる
みけCATさん
返信ありがとうございます
LoadGraph系は別関数にまとめてwhileループ外にあります
forループは今回は使ってないです…
whileループの中は基本的にDrawGraphなどメモリに保存したものを使う系ですね
返信ありがとうございます
LoadGraph系は別関数にまとめてwhileループ外にあります
forループは今回は使ってないです…
whileループの中は基本的にDrawGraphなどメモリに保存したものを使う系ですね
Re: DXライブラリを使用したゲームが異常にメモリをとる
単に大量の領域を確保しているということは無いですか?
たとえば、20000x20000のint型(32ビットと仮定)二次元配列は約1.5GBになります。
たとえば、20000x20000のint型(32ビットと仮定)二次元配列は約1.5GBになります。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリを使用したゲームが異常にメモリをとる
やっていないつもりと、実際にやっていないかの保証の差はテストして初めて保証できます。
本当にLoadGraphを通っていないかブレークポイントで確認してみてはどうでしょうか?
LoadGraph()がある関数全てにブレークポイントを貼ってみて下さい。
あと音楽系でも間違うとメモリをリークするのでそちらも確認を。
【補足】
新たにハンドルを取得するモノ全てを疑って下さい。
本当にLoadGraphを通っていないかブレークポイントで確認してみてはどうでしょうか?
LoadGraph()がある関数全てにブレークポイントを貼ってみて下さい。
あと音楽系でも間違うとメモリをリークするのでそちらも確認を。
【補足】
新たにハンドルを取得するモノ全てを疑って下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリを使用したゲームが異常にメモリをとる
みけCATさん
softya(ソフト屋)さん
返信ありがとうございます
2次元配列は使ってないですし、変数もi合計して30ないので大丈夫だと思います
ブレークポイント初めて使ってみたので正しい使い方かはわかりませんが、全てに貼ってみてすべて通過は1回でした
新たにハンドルを取得するものというと…MakeScreenは入りますか?
MakeScreenはwhileループに入ってるのでもしかしたらそれかもしれないです
softya(ソフト屋)さん
返信ありがとうございます
2次元配列は使ってないですし、変数もi合計して30ないので大丈夫だと思います
ブレークポイント初めて使ってみたので正しい使い方かはわかりませんが、全てに貼ってみてすべて通過は1回でした
新たにハンドルを取得するものというと…MakeScreenは入りますか?
MakeScreenはwhileループに入ってるのでもしかしたらそれかもしれないです
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリを使用したゲームが異常にメモリをとる
MakeScreenもハンドルを生成するものです。つまりメモリを消費します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリを使用したゲームが異常にメモリをとる
softya(ソフト屋)さん
MakeScreenをwhileループ外に出したらメモリ消費が収まりました
お二方、本当にありがとうございました
MakeScreenをwhileループ外に出したらメモリ消費が収まりました
お二方、本当にありがとうございました