トップページ > 過去ログ > 記事閲覧
初歩的なコードでメモリ消費量が増え続ける
名前:in 日時: 2010/01/16 14:52

いつもDXライブラリを愛用させていただいております。 DxLib Ver3.01、Windows7、VC++Express2008という環境で開発しています。 早速ですが、以下のような初歩的なコードでもメモリ消費量が増加し続けるようです。 -------------------------------- #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int StartTime ; ChangeWindowMode( TRUE ) ; if( DxLib_Init() == -1 ) { // DXライブラリ初期化処理 return -1; // エラーが起きたら直ちに終了 } // 現在経過時間を得る StartTime = GetNowCount() ; // 計測開始から600秒が過ぎるまでループ while( GetNowCount() - StartTime < 600000 ) { // メッセージ処理 if( ProcessMessage() == -1 ) { break ; // エラーが起きたらループから抜ける } } DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } -------------------------------- 計測方法: プログラム実行 → ProcessExplorer起動 → プログラム単体のメモリ使用量を表示 → プログラムにフォーカスを充て待機 起動時は64.5MB程度の使用量だったにもかかわらず、しばらく待つと68.1MBまで増加しました。 計測はここで中断しましたが、一向にメモリ増加が止まる気配はありませんでした。 ttp://imagepot.net/view/126362116719.png 手元にWindows7しかないので他の環境では確認できないのですが、DxLib Ver2.25bでも同様の結果となりました。 このような動作は仕様なのでしょうか?

Page: 1 |

Re: 初歩的なコードでメモリ消費量が増え続ける ( No.1 )
名前:Masao 日時:2010/01/16 15:55

DxLib Ver3.01、Windows7、VC++Express2008 まったく同じ環境を持っていますが、同様な症状は確認できませんでした。 >しばらく待つと しばらくってどのくらいでしょうか? 30秒ぐらいしか待ちませんでしたが、50KB程度上下するだけで数MBもかわるような現象はありませんでした。 それにしても、私の場合29,400KBとかかれてあるので 質問者よりも35MBぐらい違うことになりますね。。。 ただし、計測方法がかなり違います。 タスクマネージャー⇒ プロセス⇒タイトル名の列⇒メモリ もし、いとはずれな調べ方でしたらすいません。
Re: 初歩的なコードでメモリ消費量が増え続ける ( No.2 )
名前:in 日時:2010/01/16 16:23

Masaoさんレスありがとうございます。 少し言葉足らずでしたね。計測時間は5分間ほど、ビルド構成はDebugです。 タスクマネージャで見る場合は、メモリ(プライベート ワーキング セット)がプログラム単体のメモリ使用量です。 表示 → 列の選択 で見つけることが出来ると思います。 しかし驚いたことに、私の環境ではフォーカスを充てていなくてもメモリを消費し続けるようです。 SetAlwaysRunFlagは使用していないので、動作は停止すると思うのですが… (非アクティブでCPU利用率は大幅に下がります)
Re: 初歩的なコードでメモリ消費量が増え続ける ( No.3 )
名前:いっち 日時:2010/01/16 20:14

私の環境でもテストしてみました。 デバッグビルドでデバッグあり、デバッグビルドでデバッグなし、リリースビルドでデバッグなしの 3パターンで実行してみましたが特に目立ったメモリの増加はありませんでした。 タスクの切り替えを頻繁に行うと、4KB程増えるときがあったり無かったりという感じでした。 メモリの使用量も30MB以下でした。 環境は以下の通りです OS WindowsXP SP 3 DirectX 9.0c DXLib Ver3.01 開発環境 VC++ 2008 EE CPU Pen4 3.2GHz GPU Geforce 6600 GT inさんの環境ではGetNowCount関数無しで実行しても同様の現象になるのでしょうか?
Re: 初歩的なコードでメモリ消費量が増え続ける ( No.4 )
名前:Masao 日時:2010/01/16 21:55

>タスクマネージャで見る場合は、メモリ(プライベート ワーキング セット)がプログラム単体のメモリ使用量です。 表示 → 列の選択 で見つけることが出来ると思います。 うーん。 確認してみましたが、 私が使った計測方法にも 「メモリ(プライベート ワーキング セット)」 と書かれていました。 ちなみに in さんはタスクマネージャーで確認してみましたか? ソフトの計測間違いとか・・・。 もしくは、ハードの影響でしょうかね?

Page: 1 |