Scalaで書かれたAndroid用のゲームには、プールしたいオブジェクトがたくさんあります。最初に、アクティブ(表示)インスタンスと非アクティブインスタンスの両方を同じプールに入れようとしました。これは、GCを引き起こし、低速であるフィルタリングのために低速でした。
そこで、2つのデータ構造を使用するようになりました。そのため、無料のインスタンスを取得する必要がある場合は、最初のインスタンスをパッシブプールから取得し、それをアクティブプールに追加します。また、アクティブプールへのランダムアクセスを高速化します(インスタンスを非表示にする必要がある場合)。これには2つのArrayBufferを使用しています。
だから私の質問は、この状況に最適なデータ構造はどれかということです。そして、その(またはそれらの)特定のデータ構造をどのように使用して追加および削除し、GCを可能な限り回避し、Android(メモリおよびCPUの制約)で効率的にする必要がありますか?