トップページ > 過去ログ > 記事閲覧
メモリ使用について
名前:かたぱると 日時: 2008/04/21 00:26

お久しぶりでございます、かたぱるとでゴザイマス。 今回少し疑問に思ったために書き込ませていただきます。 ちょっとしたプログラムをReleaseで組み、 タスクマネージャでメモリ使用量を調べていて気がついたのですが、 ウインドウ状態で起動する簡単なサンプルを作成し、 起動してタスクマネージャのプロセスタブで メモリ使用量を見ると 14,000K程 となっており、 このプログラムをウインドウ最小化させて 元に戻すと以後はメモリ使用量が 2,700K程 で動作します。 この挙動は想定内のものでしょうか…? 使用しているライブラリバージョンは DxLib_VC2_24c になります。

Page: 1 |

Re: メモリ使用について ( No.1 )
名前: 日時:2008/04/21 15:08

>>この挙動は想定内のものでしょうか…? 挙動が想定内か?というのは少し意味がわからない のですが、意図した動きなのか?という事であれば そもそも、これはDXライブラリが意識している (または意識できる)ところでは無いように思います。 仮想記憶に関する知識が必要になりますが、 ここに表されるメモリ使用量とはWorkingSetと 呼ばれるプログラム実行時に予約される 仮想メモリ領域の集合になります。 #厳密には少し違いますが。。。 しかし、あくまでも予約であり、実際に 使用されていない部分もあります。 最小化した場合などにこれが最適化され Working Setが減少し未使用の場合はそのまま となるような見え方が起こりえます。 ある程度のPCユーザは気にする部分なので、 少ないことに越したことはありませんが、 プログラム側で対処するとこは、「見え」の 問題は解決できても、実際のパフォーマンス的に 劣化させる以上のことは殆どできないと思います。 #見えを少なくするというのは、 #SetProcessWorkingSetSizeなどのAPIで定期的に #そのサイズを抑止・制御する方法などです。 VistaではWorking Setではなく、 Private Working Setがデフォルトの表示と なっているようで、今までのWrokingSetよりは、 数値的には小さく見えている場合がありますが、 実際は変わっていない場合が殆どのようです。 #私もそこまで詳しくは無いので、参考程度に:-p)
Re: メモリ使用について ( No.2 )
名前:かたぱると 日時:2008/04/21 18:41

通様、回答ありがとうございます。 読み返すと変な質問になってしまっていました。 よくよく考えると通様のおっしゃるとおりで、 パフォーマンス的には余計なことしないほうが良い気がしました。 WorkingSet関連は Vistaのパフォーマンスモニタにて WorkingSetとWorkingSet-Privateを データコレクタでしばらく監視して見てみたのですが、 いろいろ試していた際に 最小化関連であまりに振れ幅が大きかった為に DXLib内での処理にて最適化が施されているのかと 勘違いしてしまっていました。 付け焼刃な知識で質問してしまい申し訳ありませんです。

Page: 1 |