HeapAllocそのものもある程度の塊を取ってきて、其の中でやりくりしてるんじゃなかったっけ。
まあ実際に効率悪いのなら其の通りなんだろうけど。