[devel] q: glibc malloc s*cks?
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Вт Янв 16 04:26:32 MSK 2007
On Tue, Jan 16, 2007 at 01:18:00AM +0200, sr на altlinux.ru wrote:
> On Tue, Jan 16, 2007 at 12:37:28AM +0200, Michael Shigorin wrote:
> > On Mon, Jan 15, 2007 at 11:33:03PM +0200, sr на altlinux.ru wrote:
> > > > Скажите sr@, что glibc malloc уже давно использует mmap.
> > > > См. тж. http://sourceware.org/ml/libc-alpha/2006-11/msg00061.html
> > > Агащазблин.
> >
> > Скажем так -- "умеет использовать mmap",
>
> Не так, "не умеет использовать mmap", потому что mmap()/mremap()/munmap()
> не может использоваться в прямую для malloc()/realloc()/free(), это
> сразу дыры между vm_area_struct, т.е. фрагментацию на уровне юзерспэйса они
> заменяют фрагментацией в ядре, хотя и в юзерспэйсе фрагментация не отменяется.
> А там это таки так для больших кусков памяти.
Это openbsd malloc целиком построен на mmap.
А glibc malloc имени Wolfram Gloger/Doug Lea по прежнему использует brk
для размещения объектов малого размера.
Так в чём вопрос был? Как минимизировать фрагментацию памяти
долгоживущего приложения, у которого средний размер размещаемого объёкта
около 24 байт? Полагаю, что эффект от использования специализированного
allocator'а будет больше чем от замены универсального malloc'а. Другое
дело что внедрить такой allocator в чужой софт немалого размера может
оказаться даже сложнее чем поменять malloc.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070116/2ce13240/attachment-0001.bin>
Подробная информация о списке рассылки Devel