Я докатился по итогу до своего аллокатора. В glibc, конечно, и маллок умный, и юзает под капотом арены, но у меня чуть более специализированный кейс, поэтому могу себе позволить. Всё равно потом забенчмаркаю оба варианта, может, и выкину нахуй
Но тут встала такая проблема: у меня сейчас указатели на все аллоцированные арены лежат в динмассиве. Я могу сделать из арен связанный список, где в начале каждой арены будет лежать указатель на следующую. Но тогда размер арен перестанет быть кратным размеру страницы (как минимум, на х86 - а это 4096 байт), если я буду аллоцировать размер арены + 8 байт (похуй на 32-х разрядные системы, 4 байта непринципиально). Можно просто от обычного размера арены откусить 8 байт под собственные нужды. Но в таком случае, когда мне нужны объекты как раз размером со страницу - например, буфер для чтения из сокета, 4096 байт - тогда у меня ещё и 4088 байт будут "висеть" мёртвым грузом. Эх.
Может, отдельный динмассив где-то там и будет лучшим выбором. Грустно.
Post #269
133