私は特定のキャッシングアルゴリズムをいじっていますが、これはやや困難です。基本的に、マップされた値を介してアクセス可能なオブジェクトを使用して、多数の小さなオブジェクト(double配列、1〜256要素)を割り当てる必要がありますmap[key] = array
。アレイを初期化するまでの時間は非常に長く、通常は1万CPUサイクルを超える場合があります。
ロットとは、合計で約ギガバイトを意味します。オブジェクトは、必要に応じて、通常はランダムな場所で、一度に1つのオブジェクトをポップ/プッシュする必要がある場合があります。オブジェクトの存続期間は一般に長く、数分以上ですが、プログラムの期間中にオブジェクトが数回割り当て/割り当て解除される場合があります。
妥当な割り当て解除速度を維持しながら、メモリの断片化を回避するための適切な戦略は何でしょうか。
私はC++を使用しているので、newとmallocを使用できます。ありがとう。
私はウェブサイトに同様の質問があることを知っています。多くの短命の小さなオブジェクトを効率的に割り当てることは多少異なります。スレッドセーフは私にとって当面の問題ではありません。
私の開発プラットフォームは、LinuxオペレーティングシステムのIntelXeonです。理想的にはPPCLinuxでも作業したいのですが、それは私にとって最も重要ではありません。