トップページ > 記事閲覧
プログラム実行時のメモリについて
名前:こじこじ 日時: 2014/02/23 15:20

はじめまして。こじこじと申します。 Dxlibを使用して趣味でゲームを作成しています。 プログラムの実行時のメモリについてよくわからないことがあるので、質問させてください。 [質問] 以下のソースコードを実行したとき、該当するプロセスのメモリが1分ごとに0.5MB増えていました。 実行したとき、メモリを増やさないようにしたいです。 Dxlibのverや、ソースコードを見直しましたが、よくわかりませんでした。 ご助言等いただけたら幸いです。よろしくお願いします。 [使用言語] C++ [実行環境] OS:WIn7 64bit Dxlib:ver3.11b VC++2010 Express (Debug/Release) [設定] ↓これの通りに設定しています ttp://dixq.net/g/h_01.html [ソースコード] #include <DxLib.h> int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode(TRUE); //ウインドウモードに設定 DxLib_Init(); // DXライブラリ初期化処理 SetDrawScreen(DX_SCREEN_BACK); while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0){ DrawFormatString( 240,240, GetColor(255,255,255), "これはテスト"); } DxLib_End(); // DXライブラリ終了処理 return 0; } [相互リンク先] 本件は、他BBSでも質問しているので、相互リンク します。 ttp://dixq.net/forum/viewtopic.php?f=3&t=14690&sid=faaf87d94c997287c76a8596eb17ce9e
メンテ

Page: 1 |

Re: プログラム実行時のメモリについて ( No.1 )
名前:管理人 日時:2014/02/23 16:36

載せて頂いたプログラムを30分ほど実行してみましたが、 メモリが1分毎に0.5MB増えることはありませんでした Win7 はプロセスのメモリの表示に 「ワーキングセット」「メモリ(プライベートワーキングセット)」 「コミットサイズ」「ページプール」「非ページプール」 などがありますが、どの項目が増えるのでしょうか? あと、1分毎に0.5MB増えるとのことですが、際限なく増えるのでしょうか? ( 例えば1時間放置していたら30MB増えるのでしょうか? )
メンテ
Re: プログラム実行時のメモリについて ( No.2 )
名前:こじこじ 日時:2014/02/23 17:25

確認ありがとうございます。 私の言ってるメモリとは、「メモリ(プライベートワーキングセット)」のことです。 1時間程度は実施していませんが、 5分程度放置して、5MB(67MB→72MB) メモリが増えていました。
メンテ
Re: プログラム実行時のメモリについて ( No.3 )
名前:管理人 日時:2014/02/23 18:11

よろしければ30分、1時間といつまでも増え続けるかご確認いただけないでしょうか? あと、こちらでビルドした実行ファイルをアップしましたので、こちらの実行ファイルでも 同様にメモリが増えてしまうかもご確認いただけないでしょうか https://dxlib.xsrv.jp/temp/MemoryTest.zip ( こちらの実行ファイルは SetAlwaysRunFlag( TRUE ) ; を追加してあるので、ウインドウが  非アクティブの間も動き続けます ) あと、お手数で申し訳ありませんが実行ファイルを実行した際に作成される Log.txt の 内容を掲示板に貼り付けてください m(_ _)m
メンテ
Re: プログラム実行時のメモリについて ( No.4 )
名前:こじこじ 日時:2014/02/23 18:36

上記の件、了解しました。 確認してみます。
メンテ
Re: プログラム実行時のメモリについて ( No.5 )
名前:こじこじ 日時:2014/02/23 22:58

私が作成した実行ファイル、MemoryTest.exeで メモリ増加の確認をしました。 メモリの値は以下のようになりました [メモリ]          0分後  30分後 60分後 @実行ファイル  67MB 77MB 77MB AMemoryTest   66MB 76MB 76MB @、Aともに30分まで10MB増加し、以降は変化がないことがわかりました。 以下、Logファイルを記載します。 [@のLog.txt] 0:システムの情報を出力します 0: DXライブラリ Ver3.11d 0: 論理プロセッサの数 : 2 0: OS Windows7 ( Build 7601 Service Pack 1 ) 116: CPU動作速度:大体2.55GHz 117: MMX命令を使用します 119: SSE命令が使用可能です 120: SSE2命令が使用可能です 121: CPUベンダ:GenuineIntel 137: CPU名: Intel(R) Celeron(R) CPU G1610 @ 2.60GHz 141:COMの初期化... 成功しました 191:メモリ総量:3971.86MB 空きメモリ領域:1889.51MB 199:タイマーの精度を検査します 200:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 201: パフォーマンスカウンターを使用します タイマー精度 : 2533.330000 KHz 202: ソフトの二重起動検査... 二重起動はされていませんでした 205:ウインドウクラスを登録します... 登録に成功しました 207:ウインドウモード起動用のウインドウを作成します 209:ウインドウの作成に成功しました 210:ウインドウを表示します 275:IMEを無効にしました 277:ウインドウスタイルをウインドウモード用に変更します... 完了 302:DirectInput関係初期化処理 303: XInput DLL の読み込み中... 成功 312: DirectInput7 の取得中... 成功 341: 引き続き初期化処理... 初期化成功 346: ジョイパッドの初期化... 355: ジョイパッドの初期化は正常に終了しました 357: マウスデバイスの初期化... 初期化成功 361: キーボードデバイスの初期化... 初期化成功 365:DirectInput 関連の初期化は正常に終了しました 370:XAudio2 の初期化を行います 371: XAudio2 インターフェースの取得を行います.... 成功 Ver2.7 376: 引き続きインターフェースの初期化処理... 成功 378: X3DAudio.DLL の読み込み中... 成功 443: デバイス名:スピーカー (Realtek High Definition Audio) 447: チャンネル数:2 450: ビット精度:32bit 451: サンプリングレート:48000Hz 453:XAudio2 の初期化は正常に終了しました 460:DirectDraw オブジェクトの取得を行います.... 成功 470:引き続き初期化処理... 初期化に成功しました 510:IDirect3D9 オブジェクトを取得します.... 成功 513:IDirect3DDevice9 オブジェクトを取得します.... ハードウエア頂点演算を使用します 762:成功 764:Driver:igdumd32.dll Description:Intel(R) HD Graphics 765:画面のフォーマットは D3DFMT_X8R8G8B8 です 766:16bit Zバッファフォーマットは D3DFMT_D16 です 768:24bit Zバッファフォーマットは D3DFMT_D24X8 です 769:32bit Zバッファフォーマットは D3DFMT_D24X8 です 770:16bit カラーフォーマットは D3DFMT_R5G6B5 です 771:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 772:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 773:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 774:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 776:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 778:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 779:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 780:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 782:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 783:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 784:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 785:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 786:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 788:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 789:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 790:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 791:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 792:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 794:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 795:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 796:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 797:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 798:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 801:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 803:一度に描画できるプリミティブの最大数:1048575 804:対応している最大頂点インデックス:16777215 805:同時にレンダリングできるバッファの数:4 806:最大テクスチャサイズ 幅:8192 高さ:8192 807:テクスチャステージテンポラリレジスタ:使用可 808:減算合成のハードウェア対応:ネイティブ 810:ハードウェア頂点シェーダーバージョンコード:300 811:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 813:ピクセルシェーダーバージョンコード:300 836:バックバッファロック転送の時間:2159nsec 一時的な描画可能バッファを使用した転送の時間:1435nsec 837:バックバッファロックを使用しません 839:Zバッファを作成します.... 成功 919:プログラマブルシェーダーを使用します 986:フォントの初期化を行います 988:フォントの初期化は正常に終了しました 1023:文字コードバッファの初期化を行います... 完了しました 3511508:ウインドウを閉じようとしています 3511531:ウインドウが破棄されようとしています 3511534:ソフトを終了する準備が整いました 3511541:フォントの初期化を行います 3511543:フォントの初期化は正常に終了しました 3511585:Direct3DDevice9 の解放 2 3511625:Direct3D9 DLL の解放 1 3511633:DirectInput 関連の終了処理... 完了 3511724: 3511725:Alloc memory dump 3511727: Total size:0(0.000kb) Alloc num:0 3511728: [AのLog.txt] 1:システムの情報を出力します 4: DXライブラリ Ver3.11e 5: 論理プロセッサの数 : 2 337: OS Windows7 ( Build 7601 Service Pack 1 ) 442: CPU動作速度:大体2.58GHz 443: MMX命令を使用します 445: SSE命令が使用可能です 447: SSE2命令が使用可能です 449: CPUベンダ:GenuineIntel 458: CPU名: Intel(R) Celeron(R) CPU G1610 @ 2.60GHz 459:COMの初期化... 成功しました 472:メモリ総量:3971.86MB 空きメモリ領域:1719.41MB 474:タイマーの精度を検査します 475:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 483: パフォーマンスカウンターを使用します タイマー精度 : 2533.330000 KHz 486: ソフトの二重起動検査... 二重起動はされていませんでした 491:ウインドウクラスを登録します... 登録に成功しました 497:ウインドウモード起動用のウインドウを作成します 500:ウインドウの作成に成功しました 502:ウインドウを表示します 541:IMEを無効にしました 544:ウインドウスタイルをウインドウモード用に変更します... 完了 570:DirectInput関係初期化処理 572: XInput DLL の読み込み中... 成功 578: DirectInput7 の取得中... 成功 594: 引き続き初期化処理... 初期化成功 606: ジョイパッドの初期化... 611: ジョイパッドの初期化は正常に終了しました 616: マウスデバイスの初期化... 初期化成功 621: キーボードデバイスの初期化... 初期化成功 631:DirectInput 関連の初期化は正常に終了しました 639:XAudio2 の初期化を行います 642: XAudio2 インターフェースの取得を行います.... 成功 Ver2.7 653: 引き続きインターフェースの初期化処理... 成功 663: X3DAudio.DLL の読み込み中... 成功 710: デバイス名:スピーカー (Realtek High Definition Audio) 712: チャンネル数:2 714: ビット精度:32bit 715: サンプリングレート:48000Hz 728:XAudio2 の初期化は正常に終了しました 732:DirectDraw オブジェクトの取得を行います.... 成功 750:引き続き初期化処理... 初期化に成功しました 768:IDirect3D9Ex オブジェクトを取得します.... 成功 777:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 1021:成功 1024:Driver:igdumd32.dll Description:Intel(R) HD Graphics 1027:画面のフォーマットは D3DFMT_X8R8G8B8 です 1077:16bit Zバッファフォーマットは D3DFMT_D16 です 1079:24bit Zバッファフォーマットは D3DFMT_D24X8 です 1084:32bit Zバッファフォーマットは D3DFMT_D24X8 です 1086:16bit カラーフォーマットは D3DFMT_R5G6B5 です 1095:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 1097:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 1106:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1108:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 1111:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1113:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 1116:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 1121:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 1123:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 1125:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 1128:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 1130:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 1132:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1134:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 1137:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 1139:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 1150:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 1153:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 1155:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 1161:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 1164:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 1166:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 1169:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 1172:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 1176:一度に描画できるプリミティブの最大数:1048575 1179:対応している最大頂点インデックス:16777215 1183:同時にレンダリングできるバッファの数:4 1185:最大テクスチャサイズ 幅:8192 高さ:8192 1187:テクスチャステージテンポラリレジスタ:使用可 1195:減算合成のハードウェア対応:ネイティブ 1197:ハードウェア頂点シェーダーバージョンコード:300 1199:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 1206:ピクセルシェーダーバージョンコード:300 1223:バックバッファロック転送の時間:2181nsec 一時的な描画可能バッファを使用した転送の時間:986nsec 1225:バックバッファロックを使用しません 1226:Zバッファを作成します.... 成功 1268:プログラマブルシェーダーを使用します 1328:フォントの初期化を行います 1331:フォントの初期化は正常に終了しました 1345:文字コードバッファの初期化を行います... 完了しました 3715231:ウインドウを閉じようとしています 3715238:ウインドウが破棄されようとしています 3715595:ソフトを終了する準備が整いました 3715600:フォントの初期化を行います 3715605:フォントの初期化は正常に終了しました 3715617:Direct3DDevice9 の解放 2 3715630:Direct3D9 DLL の解放 1 3715634:DirectInput 関連の終了処理... 完了 3715679: 3715681:Alloc memory dump 3715682: Total size:0(0.000kb) Alloc num:0 3715690:
メンテ
Re: プログラム実行時のメモリについて ( No.6 )
名前:管理人 日時:2014/02/23 23:39

お試しいただきありがとうございます ログを拝見する限りでは特に気になる箇所は無いようです 10MB増える原因は分かりませんが、動作に支障は無いと思いますので とりあえず気にしないで良いと思います それでも気になる、という場合ですが、「使用メモリが増加する」環境で 色々試しながら調べないと原因が分からないと思いますので、 申し訳ありませんがこれ以上は難しいです・・・
メンテ
Re: プログラム実行時のメモリについて ( No.7 )
名前:こじこじ 日時:2014/02/23 23:49

了解しました。 原因不明ということでモヤモヤしますが、 問題なさそうということがわかりました。 対応ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存