From: rivenburgh on 27 Feb 2006 11:29
I admit, I've never used a mapped file. I figured it was a
pointer-based view into a file. It does sound like a good way to
handle large files transparently. Unfortunately, there's still the
issue of making substantial changes to the library I'm using, something
I was hoping to avoid....
From: rivenburgh on 27 Feb 2006 12:29
Well, I've certainly learned a lot in this thread.
After digging further through this code I have, I think I have an
answer. My original question was misguided. I've been seeing 2 times
the requested memory being committed when reading a file. I was told
by the library author that it should only ever be using 1x the amount
needed, which led someone to suggest that "new" could be the culprit.
That was a wild goose chase. What I didn't realize was that a second
library was actually using MapViewOfFile as part of the reading
process, and we all now know how little I knew of that function! So,
it seems that it was committing another 250 MB of memory to support
MapViewOfFile. After finishing reading, that went away, of course.
I'm not quite sure how to proceed, but it's all starting to make more
sense now. I want to thank everyone for their help, and apologize for
confusing everyone regarding "new" and Heap*.