Boost::pool::free() の Big O の正しいパフォーマンスを知っている人はいますか? パフォーマンスが重要な C++ コードを書いていますが、大きな違いがありますか? 以下はBoostのドキュメントからのものですが、ややこしいです。O(1) ですか、それとも O(n) ですか?
void free(void *const チャンク); malloc と同様に、n * requested_size バイトをカバーするのに十分な連続したチャンクのみを割り当てます。償却 O(n)。
メモリのチャンクを解放します。チャンクは 0 ではないことに注意してください。O(1)。
チャンクは、t.malloc() または t.ordered_malloc() によって以前に返されている必要があります。チャンクが実際に n * partition_sz バイトにまたがるチャンクのブロックを参照していると仮定します。そのブロック内の各チャンクの割り当てを解除します。チャンクは 0 でない場合があることに注意してください。O(n)。