[Lazarus] Reading a spreadsheet with fpspreadsheet

Koenraad Lelong lazarus1 at de-brouwerij.be
Mon Aug 2 08:11:40 CEST 2010


On Sun, 01 Aug 2010 13:46:00 +0200
Hans-Peter Diettrich <DrDiettrich1 at aol.com> wrote:

> Mattias Gaertner schrieb:
>[...]
> > Correct me if I'm wrong: memory mapped files is a more direct access to
> > the OS file cache. You can omit the copy on loading and the copy-back
> > on writing.
> 
> Yes.
> 
> > The IDE loads/saves files as whole with one TFileStream.Read/Write
> > call.
> 
> The related file buffers are subject to swapping, i.e. they may have to 
> be written to the swap file. MMFs deserve no such writes, except for 
> changed parts, since they can be reloaded from the original disk file or 
> cache.

For the IDE this will at most save 20% of the needed memory. For normal
projects it will be probably less than 10%. I didn't heard complains
that lazarus needs too much memory in the last years, especially not
on 64bit systems.

 
>[...]
> > I tried to measure the time of the copy: 
> > The code browser loads under Linux fpc 2.5.1 about 87 MB of sources
> > and takes on this machine about 4.5 seconds.
> > I doubled the copy on load and it is still about 4.5 seconds.
> > I put the copy on load in a loop for 10 times and it is still about 4.5
> > seconds.
> > That's why I doubt that memory mapped files will give a noticeable speed
> > increase.
> 
> I have no practical experience with MMFs myself, but users reported 
> factors of 3 in reading files (Delphi/Win32). At least it would be worth 
> a try.

It heavily depends on file access pattern. Make your own tests.


Mattias




More information about the Lazarus mailing list