自分で制作したゲームを他人に遊んでもらったのですが、
メモリの消費量(タスクマネージャでの数値)が異なるということを知りました。
自分の環境(Win7 64bit)では300M前後なのに
相手の環境(WinXP 32bit)だと900M以上に成るとのことです。
それで質問なのですが、
1.これはなぜ起こるのか?
2.配布前にメモリについてのテスト仕方。
を聞きたいです。
2は「いろんなPCを用意して確かめる」しかなさそうですが、他に何かあれば是非教えていただければと思います。
よろしくお願いいたします。
パソコンの環境によってゲームのメモリ消費量が異なる?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: パソコンの環境によってゲームのメモリ消費量が異なる?
XPとWin7でメモリ表示方法が異なるので比較対象が違っているということはありませんか?
Win7のコミットサイズと比べてみてください。
それとメモリ消費の比較用のテストプログラムを組んでみると良いと思います。
私はXPもあるので試せますから、ここにUPしてみください。
Win7のコミットサイズと比べてみてください。
それとメモリ消費の比較用のテストプログラムを組んでみると良いと思います。
私はXPもあるので試せますから、ここにUPしてみください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: パソコンの環境によってゲームのメモリ消費量が異なる?
一応Windowsは他に類を見ないぐらい互換性性が高くてついつい忘れがちですが
WindowsXPとWindows7は大きく別物です。分かりやすく言えば、MacとLinuxみたいに別物です。
なので、OSが違えばそれだけでも色々とメモリ消費が変わります。
とくに、DXlibのおかげであまり意識はしないとおもいますが、DirextXそのものが大きく違うと思われますので、
実質的には動かしているプログラムが別な物を動かしてます。
ついでに言えば、Windows7およびそのDefaultでのDirextXは色々なメモリ消費を抑える形になっているので、
WindowsXPと比べれば減っているのは良くある形かと。
その他としては、パソコン本体の構成に関する部分での各種Sound関係の物やDisplay関係の物などでも、
時には、それらによって大きく異なる事があります。
また、そもそもグラフィックボードがちゃんと対応してなかったり、そもそもちゃんとしたGPUがない場合には、
ソフトウェアで頑張るので、その分メモリ消費量が増えます。
(市販のPCゲームなどでも、特定のSound Boardによっては、メモリを食い尽くしたりなどのBugがあるものもあったり・・・・・・)
さらにWindows7ですと、画面処理をAeroなど豊富な資源(実際にはGPUに一任)で処理しようとする傾向があるので、XPよりも
GUIなどグラフィカルなプログラムを実行させるとメモリ消費が見た目減る傾向にあると思います。
(※ 大雑把にいえば、すでにOSの描画でDirectXが使われているので、個人のDirectXを使うプログラムはそれと基本を共有するようなイメージ)
あと、念のためですが、そのメモリ消費量は、全体の消費量ではなくて、[プロセス]でのプログラム単位で見た時のメモリ消費量の違いですよね?
単純に、タスクマネージャの[パフォーマンス]の物理メモリ消費量だと、色々と常駐ソフトなども含むのでその分がもちろん異なります。
( プログラムのメモリ管理周りやデータの読み込み方が悪いと、起動時間に比例して大きくなるなどもあり得ますが……。)
WindowsXPとWindows7は大きく別物です。分かりやすく言えば、MacとLinuxみたいに別物です。
なので、OSが違えばそれだけでも色々とメモリ消費が変わります。
とくに、DXlibのおかげであまり意識はしないとおもいますが、DirextXそのものが大きく違うと思われますので、
実質的には動かしているプログラムが別な物を動かしてます。
ついでに言えば、Windows7およびそのDefaultでのDirextXは色々なメモリ消費を抑える形になっているので、
WindowsXPと比べれば減っているのは良くある形かと。
その他としては、パソコン本体の構成に関する部分での各種Sound関係の物やDisplay関係の物などでも、
時には、それらによって大きく異なる事があります。
また、そもそもグラフィックボードがちゃんと対応してなかったり、そもそもちゃんとしたGPUがない場合には、
ソフトウェアで頑張るので、その分メモリ消費量が増えます。
(市販のPCゲームなどでも、特定のSound Boardによっては、メモリを食い尽くしたりなどのBugがあるものもあったり・・・・・・)
さらにWindows7ですと、画面処理をAeroなど豊富な資源(実際にはGPUに一任)で処理しようとする傾向があるので、XPよりも
GUIなどグラフィカルなプログラムを実行させるとメモリ消費が見た目減る傾向にあると思います。
(※ 大雑把にいえば、すでにOSの描画でDirectXが使われているので、個人のDirectXを使うプログラムはそれと基本を共有するようなイメージ)
あと、念のためですが、そのメモリ消費量は、全体の消費量ではなくて、[プロセス]でのプログラム単位で見た時のメモリ消費量の違いですよね?
単純に、タスクマネージャの[パフォーマンス]の物理メモリ消費量だと、色々と常駐ソフトなども含むのでその分がもちろん異なります。
( プログラムのメモリ管理周りやデータの読み込み方が悪いと、起動時間に比例して大きくなるなどもあり得ますが……。)
Re: パソコンの環境によってゲームのメモリ消費量が異なる?
後あれも関係あるんじゃないでしょうか?グラフィック内臓の場合メモリをどの位Biosなどで割り当てているか?など。
Re: パソコンの環境によってゲームのメモリ消費量が異なる?
みなさまご返信ありがとうございます。
とりあえず返信&そのゲームのアップをしてみました。
しかし、改めて調べてみましたが、やはり僕の環境では900Mとかにはなりませんでした。

ということでデータをアップしました。容量の都合上、一部中身をカットしてますが、
メモリ自体に大きな変化はないはずです。
THMDZY.exeを起動すれば、ゲームが始まります。
今回はコミットで見てみました。
とりあえず返信&そのゲームのアップをしてみました。
なるほど。コミットサイズというのがいわゆるメモリの消費量だったのですか…XPとWin7でメモリ表示方法が異なるので比較対象が違っているということはありませんか?
Win7のコミットサイズと比べてみてください。
しかし、改めて調べてみましたが、やはり僕の環境では900Mとかにはなりませんでした。
http://firestorage.jp/download/1d6c31b8 ... d1ba233e30それとメモリ消費の比較用のテストプログラムを組んでみると良いと思います。
私はXPもあるので試せますから、ここにUPしてみください。
ということでデータをアップしました。容量の都合上、一部中身をカットしてますが、
メモリ自体に大きな変化はないはずです。
THMDZY.exeを起動すれば、ゲームが始まります。
前まで見ていたのではメモリ(プライベート(ry)でしたが、あと、念のためですが、そのメモリ消費量は、全体の消費量ではなくて、[プロセス]でのプログラム単位で見た時のメモリ消費量の違いですよね?
単純に、タスクマネージャの[パフォーマンス]の物理メモリ消費量だと、色々と常駐ソフトなども含むのでその分がもちろん異なります。
( プログラムのメモリ管理周りやデータの読み込み方が悪いと、起動時間に比例して大きくなるなどもあり得ますが……。)
今回はコミットで見てみました。
やっぱり環境によって、全然異なるって感じなんですかね…?後あれも関係あるんじゃないでしょうか?グラフィック内臓の場合メモリをどの位Biosなどで割り当てているか?など。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: パソコンの環境によってゲームのメモリ消費量が異なる?
VMware上のXPで動かしてみたところMAX920MB程度で常時780MB程度の消費です。
VMware上のWin7で動かしてみたところMAX1280MB程度で常時も1280MB程度の消費です。
両方共メインメモリは1.5GBとなっています。
なので、環境次第と言えるかも知れません。
画像はGPUのVRAMにも転送されるので、それによっても消費量は変わると思います。
と言うことで調べるには全く同じPCでXPとWindows7で比べてみないと何とも言えません。
VMware上のWin7で動かしてみたところMAX1280MB程度で常時も1280MB程度の消費です。
両方共メインメモリは1.5GBとなっています。
なので、環境次第と言えるかも知れません。
画像はGPUのVRAMにも転送されるので、それによっても消費量は変わると思います。
と言うことで調べるには全く同じPCでXPとWindows7で比べてみないと何とも言えません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。