2010-11-19 22 views
6

私は現在、Cで2Dシーングラフを作成しようとしています。子ノードを格納する方法を決定する必要があります。私は非常に多くの読み込みといくつかの書き込みを期待しているので、リンクされたリストは参照の空間的局所性が悪いために質問から外れており、子ノードを追加するたびにreallocを使用すると、おそらくフリーリストが忘却に分解されます。プールアロケータが最善の解決策だと思われますが、私は使用する実装を見つけることができません。誰も効率的にランダムな割り当てと割り当てを処理するアロケータを知っていますか?struct、またはおそらくより良い割り当て方式ですか?効率的なCプールアロケータ?

答えて

4

私はリアルタイムアロケータとしてTLSFを展開する準備をしています。私はまだそのパフォーマンスをプロファイリングするチャンスはなかったが、それはうまくいくようだ。licenseが正しい。

彼らのドキュメントによると、その操作は「x86アーキテクチャでは最大168のプロセッサ命令」を実行します。それは私のシステム上で修正されずにコンパイルされた単一の.cファイルとして提供されます。

+0

リンクが壊れています – CAFxX

+0

@CAFxX - Shame。 Googleは私にいくつかの代替サイトを見つけましたが、公式なサイトはありません。うまくいけば変わるだろう。 –

+0

よろしく! @ Electroの修正をありがとう。あなたにセミランダムでアップヴォートを与えます。群集に由来する知識のために別の勝利をチャクリングする。 –

2

悔しい思いをしてください。何か助けになるかもしれません。

http://swapped.cc/halloc/

+0

「halloc」は興味深いようですが、それでも 'malloc'の上で動作するので、フラグメンテーションの問題は残っていますが、プールアロケータの出発点として有用かもしれません。 – Electro