[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