[devel] q: glibc malloc s*cks?
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Вт Янв 16 02:19:45 MSK 2007
On Mon, Jan 15, 2007 at 11:33:03PM +0200, sr на altlinux.ru wrote:
> On Mon, Jan 15, 2007 at 05:13:42PM +0300, Dmitry V. Levin wrote:
> > Скажите sr@, что glibc malloc уже давно использует mmap.
> > См. тж. http://sourceware.org/ml/libc-alpha/2006-11/msg00061.html
>
> Агащазблин.
Сергей, спорить со мной на моём минном поле - это довольно рискованное
мероприятие, можно одним неудачным словом подорвать свою репутацию.
$ cat malloc.c
#include <stdlib.h>
int main(int ac, const char const **av)
{
if (ac != 2) return 1;
return !malloc(atoi(av[1]));
}
$ uname -m
i686
$ rpmquery glibc
glibc-2.5-alt3
$ gcc -O2 -Wall -Werror malloc.c -o malloc
$ strace -qce trace=brk,mmap2 ./malloc 1
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan 0.000000 0 3 brk
nan 0.000000 0 6 mmap2
------ ----------- ----------- --------- --------- ----------------
100.00 0.000000 9 total
$ strace -qce trace=brk,mmap2 ./malloc $((1024*1024))
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan 0.000000 0 1 brk
nan 0.000000 0 7 mmap2
------ ----------- ----------- --------- --------- ----------------
100.00 0.000000 8 total
$ uname -m
x86_64
$ rpmquery glibc
glibc-2.5-alt3
$ gcc -O2 -Wall -Werror malloc.c -o malloc
$ strace -qce trace=brk,mmap ./malloc 1
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan 0.000000 0 7 mmap
nan 0.000000 0 3 brk
------ ----------- ----------- --------- --------- ----------------
100.00 0.000000 10 total
$ strace -qce trace=brk,mmap ./malloc $((1024*1024))
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan 0.000000 0 8 mmap
nan 0.000000 0 1 brk
------ ----------- ----------- --------- --------- ----------------
100.00 0.000000 9 total
$ strings /lib*/ld-2.5.so |fgrep MALLOC_MMAP
MALLOC_MMAP_MAX_
MALLOC_MMAP_THRESHOLD_
$ sed -n '/Update in 2006/,/\*\//p' glibc/malloc/malloc.c |wc -l
50
Сергей, будьте добры, прочтите эти несколько строк комментариев, после
чего, если хотите, можно вернуться к теме реализации malloc в glibc.
--
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/2b25d989/attachment-0001.bin>
Подробная информация о списке рассылки Devel