memory-mapped files

Vladimir Panteleev thecybershadow at gmail.com
Tue Feb 17 20:58:21 PST 2009


On Wed, 18 Feb 2009 06:22:17 +0200, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> Brad Roberts wrote:
>> bearophile wrote:
>>  >> What the heck is going on? When does memory mapping actually help?<
>>> You are scanning the file linearly, and the memory window you use is
>>> probably very small. In such situation a memory mapping is probably
>>> not the best thing. A memory mapping is useful when you for example
>>> operate with random access on a wider sliding window on the file.
>>  You can drop the 'sliding' part.  mmap tends to help when doing random
>> access (or sequential but non-contiguous maybe) over a file.  Pure
>> streaming is handled pretty well by both patterns.  One nicity with mmap
>> is that you can hint to the os how you'll be using it via madvise.  You
>> can't do that with [f]read.
>
> This all would make perfect sense if the performance was about the same  
> in the two cases. But in fact memory mapping introduced a large  
> *pessimization*. Why? I am supposedly copying less data and doing less  
> work. This is very odd.

Perhaps this may help:
http://en.wikipedia.org/wiki/Memory-mapped_file#Drawbacks

-- 
Best regards,
  Vladimir                          mailto:thecybershadow at gmail.com



More information about the Digitalmars-d mailing list