私は 30 FPS の高解像度画像を多く含むゲームを作成しているため、この特定の状況ではパフォーマンスが大きな問題になります。メモリ消費量をチェックしていたところ、ハード ドライブに 2 ~ 3 MB のイメージ セットがゲームに読み込まれると、30 MB を占めることがわかりました。CPU 使用率をあまり犠牲にせずにメモリ消費を減らす方法はありますか?
1 に答える
あなたは一連の画像ファイルについて話している。ただし、これらの画像ファイルは圧縮されている可能性が高いため、ファイル サイズは小さくなります。すべての画像の圧縮されていないサイズを見つけるには、それぞれのメモリ フットプリントを計算する必要があります (ほとんどの場合 ( width * height * bytes per pixel
RGB の場合は 3 バイト、RGBA の場合は 4 バイト))。これは、30 MB のメモリ フットプリント (たとえば、 1680x1080 画面の RGB 画像の場合、画面に最大 5.3 MB のメモリが必要になります)?
あなたの質問に答えるには: アプリケーションのメモリ フットプリントを (CPU を犠牲にすることなく) 簡単に削減できるとは思いません。グラフィックス カード (GPU) は、圧縮されたテクスチャ/画像 (例: DXT ) を処理できます。また、PyGame も同様のようです ( PyGame Surfaceのドキュメントで「圧縮」を検索してください)。圧縮テクスチャが必要かどうか、またはテクスチャが実際に存在する場所 (ビデオ メモリ、オペレーティング メモリ、両方) を選択できます。おそらく、実行しているOSとHWに依存します。
1 つの方法は、ファイルの解像度を下げるか、その特定のシーンに必要なファイルのみをロードすることです。
PyGame の知識が豊富な人は、さらなる洞察を提供してくれるかもしれません。