オブジェクト プーリング フレームワークを作成しようとしています。クライアントが何らかのタイプのオブジェクトを要求するたびに、キャッシュ (キュー) からオブジェクトを返すか、キャッシュにオブジェクトがない場合は新しいオブジェクトを作成します。
クライアント コードでオブジェクトの処理が完了したら、それをフレームワークに渡して再度キャッシュします。ただし、このパターンが機能するには、オブジェクトを初期状態にリセットする必要があります。すべてのフィールドをその に設定する必要がありdefault(T)
ます。すべてのクラスに対してこれを手動で行うと、エラーが発生しやすく、退屈な作業になります。
public void Reset(){
x=0;
y=0;
...
}
そしてもちろん、パフォーマンスは主要な関心事です。最も効率的なソリューションを探しています。
編集:
動機としては、これは unity3d ゲーム プロジェクトであり、ガベージ コレクションは unity の大きな問題です。ガベージ コレクションから節約したすべてのバイトが重要です。そのため、オブジェクトをキャッシュすることが望ましいのは、単に新しいオブジェクトを作成するだけの、最も速く、最も簡単で、より合理的な方法とは対照的です。