comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Array and memory usage
Date: 10 Mar 2003 18:33:07 -0500
Date: 2003-03-10T18:33:07-05:00	[thread overview]
Message-ID: <wccfzpuajbg.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 1ec946d1.0303100713.7f7bcbb7@posting.google.com

mheaney@on2.com (Matthew Heaney) writes:

> Robert A Duff <bobduff@shell01.TheWorld.com> wrote in message news:<wccr89ge7hw.fsf@shell01.TheWorld.com>...
> > 
> > If you use this trick on Windows, it will allocate backing store for all
> > that virtual memory.  I believe most Unix systems are smarter than that.
> > 
> > This trick is sometimes more efficient than linked lists for growable
> > data structures.  The links waste space, plus if you're not careful, the
> > list gets scattered all over the place, damaging cache behavior.  The
> > nice thing about arrays is that they are contiguous.
> 
> One thing you can on Windows is simply reserve the virtual memory for
> the array, without committing it to physical memory, and then use SEH
> ("structured exception handling") to handle the error.
> 
> The SEH mechanism supports resumption semantics, so you can handle the
> exception by committing the page you need, and then resuming from the
> spot from where the exception was raised.
> 
> This is documented in Jeff Richter's Programming Applications book.

I thought it happened automatically.  That is, if I say:

    X: array (1..100_000_000) of Integer;

it would allocate 400,000,000 bytes of virtual memory, but only allocate
physical pages on demand.  I believe that much works on Windows (without
calling windows-specific stuff like SEH).  (Windows 2000, Windows XP.)
The problem I found was that it allocated 400,000,000 bytes of backing
store, which was annoying.

Am I misinformed?

- Bob



  reply	other threads:[~2003-03-10 23:33 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-09 11:19 Array and memory usage Preben Randhol
2003-03-09 11:52 ` John R. Strohm
2003-03-09 12:11   ` Preben Randhol
2003-03-09 13:34     ` Marin David Condic
2003-03-09 15:05       ` Preben Randhol
2003-03-10  1:45       ` Mark Biggar
2003-03-10 11:57         ` Marin David Condic
2003-03-10 12:06           ` Jeffrey Creem
2003-03-09 17:49     ` Robert A Duff
2003-03-09 17:04 ` Jeffrey Creem
2003-03-09 17:09   ` Preben Randhol
2003-03-09 18:10 ` Robert A Duff
2003-03-10 15:13   ` Matthew Heaney
2003-03-10 23:33     ` Robert A Duff [this message]
2003-03-11  0:40       ` Randy Brukardt
2003-03-11 23:37         ` Robert A Duff
2003-03-12 19:18           ` Randy Brukardt
2003-03-11 16:01       ` Matthew Heaney
2003-03-11 17:38       ` Warren W. Gay VE3WWG
  -- strict thread matches above, loose matches on Subject: below --
2003-03-12 22:04 Alexandre E. Kopilovitch
2003-03-12 22:20 ` Larry Kilgallen
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox