今までバージョンVer 3.05fをDXライブラリを使用していたのですが、更新されていたようなので、Ver 3.07を導入しました。
現在、ゲーム製作をしているのですが、大きな画像を多く使う物となっており、メモリの使用量と戦いながら製作を進めていました。
ここでお聞きしたいのが、画像を読み込んだ時に使用されるメモリの量と、解放時に空くメモリの量です。
古いバージョンでの製作時には使用する画像を読み込んだ状態でのメモリ使用量が約200Mで、解放することによって、
その画像の分のメモリが使用量から減っていることが確認できました。
しかし、プログラムを新しいバージョンのライブラリで動かしてみると、メモリの使用量が約75Mになったのです。
メモリの使用量が小さくなるのは大変うれしいことなのですが、なぜ使用量がこんなに減ったのかがよくわからないのです。
更新履歴もよく読んだのですが、答えが見つからず・・・。
いろいろ自分でも調べてみて、おそらくこうなんじゃないかと思ったことが、読み込む画像の種類が
A 2048*2048
B 1024*1024
C 512*512
D 256*256
の4種類の画像で、読み込み時にたとえばAのサイズの画像を読み込むと、約16Mメモリの消費量が増え、
次に別のAのサイズの画像を読み込むとメモリの消費量が変わらないのです。
で、Bの画像を読み込むと約4Mメモリ使用量が増え、同じように別のBのサイズの画像を読み込んでもメモリ消費量が増えないのです。
結果、メモリ消費量が増えたのは各サイズの画像を一番初めに読み込んだ時のみでした。
古いバージョンでのプログラムでは、各画像を読み込むごとにメモリ消費量が増え、合計で200Mほどになっていたので、
新しいバージョンではDxライブラリの画像の読み込み関係が素敵なことになっており、このようにメモリの消費量を抑えてくれたんだろうと思いました。
ですが、またここで気になることが発生しました。
画像の解放なのですが、新しいバージョンのほうでは、画像を解放してもメモリの使用量が減らないのです。
上記の例で言うと、Aのサイズの画像を読み込み、読み込んだ時点でのプログラムのメモリ使用量は約67Mで、
その画像を解放してもプログラムのメモリの使用量は変わらず約67Mのままなのです。
長々と書かせていただきましたが、教えていただきたいことの要点は二つで、
・画像読み込み時のメモリの使用量について
・画像を解放してもメモリの使用量が減らない事について
です。
よろしくお願いします。