何百万もの小さなオブジェクトを作成 (およびリリース) するための「ベスト プラクティス」は何ですか?
私は Java でチェス プログラムを書いています。検索アルゴリズムは、可能な手ごとに 1 つの「Move」オブジェクトを生成します。名目上の検索では、1 秒あたり 100 万を超える Move オブジェクトを簡単に生成できます。JVM GC は私の開発システムの負荷を処理することができましたが、次のような代替アプローチを検討することに興味があります。
- ガベージ コレクションのオーバーヘッドを最小限に抑えます。
- ローエンド システムのピーク メモリ フットプリントを削減します。
オブジェクトの大部分は非常に短命ですが、生成された移動の約 1% は永続化され、永続化された値として返されます。そのため、プーリングまたはキャッシュの手法では、特定のオブジェクトが再利用されないようにする機能を提供する必要があります。 .
完全に完成されたサンプルコードは期待していませんが、さらに読む/研究するための提案、または同様の性質のオープンソースの例をいただければ幸いです。