mizerne implementovan realloc() ve freebsd

Rudolf Cejka cejkar at fit.vutbr.cz
Thu Jan 22 19:25:21 CET 2004


Radim Kolar wrote (2004/01/22):
> pote run: `forkbomb -m -l 32` na linuxu a freebsd. Rozdil je rekl bych tak
> 1:1000 ve prospech linuxu. Kdyby se nekdo podival do zdrojaku
> libc/stdlib/malloc.c a zjistil proc tomu take je, byl bych vdecen. Submitnul
> jsem to i jako bug report.

Oba systemy maji ruzny pristup k veci. Zatimco v tomto pripade citim
u Linuxu snahu o vitezstvi v nesmyslnych mikrobenchmarcich, u FreeBSD
citim spise snahu o co nejlepsi vykon v realnem nasazeni. Pokud si
pamatuju dobre a situace se v Linuxu stale nezmenila, tak alokace
pameti nedela v podstate skoro nic a stranky se fyzicky mapuji az v
pripade, kdy je provedena zapisova operace. Jednim z dusledku je,
ze kdyz udelate mikrobenchmark, ktery alokuje pamet a budete cist
celou alokovanou pamet, bude Linux jednoznacne vyhravat, protoze
nebude fyzicky zadnou pamet cist. FreeBSD radsi misto jednotlivych
vypadku stranek provadi alokaci stranek rovnou. Z toto duvodu
i miva(lo?) mene problemu v situacich, kdyz zacne byt uzko v pameti
a zacina se premyslet, co dal. Podobne je to i s forkem - nez aby
se odkladaly veci, ktere stejne v realne situaci nastavaji, tak se
radsi udelaji rovnou. A podobne i s POSIXem - kdyz pouziju nePOSIXovou
funkci, tak nelze ocekavat, ze se POSIXove funkce se budou muset chovat
POSIXove atd.

-- 
Rudolf Cejka <cejkar at fit.vutbr.cz> http://www.fit.vutbr.cz/~cejkar
Brno University of Technology, Faculty of Information Technology
Bozetechova 2, 612 66  Brno, Czech Republic



More information about the Users-l mailing list