私はPythonを初めて使用し、pygameで何かを書いていますが、ビットマップを多用します。これに関する特定の(現在の)事実は次のとおりです。
- すべてのグラフィックファイルは、プログラムインスタンスの任意の時点で再利用される可能性があります。
- 重複がない場合でも、最初にすべてをプリロードすると、1GB以上のメモリを消費する可能性があります。
- (ほぼ)必要なときに画像をロードすることは難しくありません。つまり、ファイルサイズはメモリ使用量に比べて非常に小さく、次に何が起こるかを簡単に予測できます。
delを使用しないという提案はたくさんありますが、それが私の場合に当てはまるかどうかはわかりません。ガベージコレクションメカニズムを利用することを考えました。ロードされた画像への唯一の参照を保持するリソースマネージャーを実装し、一方の参照を削除してもう一方の画像を再読み込みすることで、さまざまな画像を操作します。
ただし、これによってメモリが実際に解放されるかどうかはよくわかりません。また、gc呼び出しは非常に高価であるように思われるため、GCが実際にメモリを一貫して維持する方法がわかりません(デフォルトでは頻度が低すぎます)。 )。
要約すると、上記の方法が試してみる価値があるかどうかを知りたいのですが、そうでない場合は、delを適切に使用するなど、他の方法を教えてもらえるといいのですが、それがpygameに適しているかどうかを確認します。どんな助けでもありがたいです。