← Back to team overview

sslug-teknik team mailing list archive

Re: Allokering af store mængder hukommelse

 

Robert skrev:

Jeg skal til at lave et program, som skal manipulere ca. 50 millioner datastrukturer på 160 bytes hver...altså en fandens masse. På en 64 bit maskine burde det hele jo kunne være i virtuel hukommelse, men er det den mest optimale måde at gøre det på ?

Selvfoelgelig! Tjek eventuelt PHK's tabel over omkostningerne ved diverse operationer paa et moderne styresystem. (Han har lavet en fin rangordning af typiske operationer, der kan vaere en god hjaelp ved praktisk algoritmedesign.)

Jeg regnede med at allokere hukommelse til at indeholde strukturerne, og så allokere hukommelse til pointere eller træstruktur knuder eller sådan noget som er lidt nemmere at flytte rundt.

Er det måden at gøre det på ? Skal jeg bruge malloc() eller memory mappe /dev/null eller er der en smartere måde ?

Om du skal bruge mmap() eller malloc() til at allokere en samlet blok hukommelse til dit program gaar nok rundt regnet ud paa et.

Hvilken datastruktur du bruger til at holde styr paa objekterne kommer helt an paa hvad du skal lave med dem.

God fornøjelse,

Jacob
--
»Navier-Stokes-ligningen er som Biblen,
 det er randbetingelserne der bestemmer det hele.«

References