From: kagel AT quasar DOT bloomberg DOT com Date: Mon, 8 Jul 1996 09:35:19 -0400 Message-Id: <9607081335.AA10047@quasar.bloomberg.com > To: havemann AT uran DOT informatik DOT uni-bonn DOT de Cc: djgpp AT delorie DOT com, havemann AT uran DOT informatik DOT uni-bonn DOT de In-Reply-To: <9607051642.ZM24979@Terra.informatik.uni-bonn.de> (havemann@uran.informatik.uni-bonn.de) Subject: Re: Probs: Virtual mem, V2+4DOS Reply-To: kagel AT dg1 DOT bloomberg DOT com From: "Sven A. Havemann" Date: Fri, 5 Jul 1996 16:42:24 -0600 I seem to have a problem with virtual memory management; to test it, I wrote a little program allocating and using large amounts of memory (64 million int-numbers). I have a P75 with 40 Megs of Ram, the VM swap partition is c: (115M free) and DJGPP is installed on e: (127M free) There are two problems here. First, assuming that by 64 million int-numbers you mean something like: int fred[64000000] or an equivalent malloc. The problem with this is that such an allocation takes up 256,000,000 bytes of virtual memory and as you state you have only 155MB of virtual memory available (40MB physical and 115MB swap). The second problem is related, if you meant: int *fred = malloc(64*1024*1024); then know that DJGPP malloc allocates a block rounded to the next largest power of two so that this malloc actually does an sbrk(128*1024*1024) allocating 536,870,912 bytes of VM rather than the expected 268,435,456 bytes (NB that this means that the former allocation is really 268,435,456 bytes not 256,000,000 bytes). Either way you do not have enough virtual memory. -- Art S. Kagel, kagel AT quasar DOT bloomberg DOT com A proverb is no proverb to you 'till life has illustrated it. -- John Keats