Divne chovani mallocu

Cejka Rudolf cejkar na kazi.dcse.fee.vutbr.cz
Pátek Říjen 29 14:15:46 CEST 1999


Martin Macok <macok na kocour.ms.mff.cuni.cz> wrote:
> Momentalne jsem nejak chudy na konkretni priklady, ale napada me tento:
> Napriklad pri spousteni binarnich souboru, se fyzicky nealokuje vubec nic,
> proste hned dojde k vypadku a do pameti se natahuje kod z disku jen po
> kouskach a jen ten, ktery je potreba ... diky tomu lze i ohromne binarni
> soubory spoustet relativne rychle a s mensi pametovou narocnosti ...

Tak na tento priklad muzete s klidem zase zapomenout, protoze vyse popsany
mechanismus se vubec netyka dynamicke alokace pameti zalohovane swapem.

Jeste maly dodatek: Nejspis jsme si trochu nerozumeli v pojmu
"namapovani". Ja jsem mel na mysli zarazeni pametove stranky
do adresoveho prostoru procesu a pripravu pro jeji pripadne
odswapovani (i v pripade modelu cela pamet = RAM + Swap ... on se
uz stejne jiny nepouziva)). Fyzicke pripojeni konkretni stranky
uz jsem povazoval za neco jineho.

Pro zajimavost si zkuste treba toto:

a = malloc(XXX);
b = malloc(XXX);
kopie dat z a do b

proti

a = malloc(XXX);
inicializace bloku a
b = malloc(XXX);
kopie dat z a do b

V prvnim pripade byla (2.0.35) kopie bloku dat na mem starem pocitaci
v Linuxu 4x rychlejsi nez druhy pripad. Fyzicke moznosti rychlosti
kopie pameti pritom presne odpovidaly pouze druhemu pripadu.

-- 
Rudolf Cejka   (cejkar na dcse.fee.vutbr.cz;  http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66  Brno, Czech Republic


Další informace o konferenci Linux