[fpc-devel] Dnamic packages support

Marco van de Voort marcov at stack.nl
Sat Nov 3 20:39:46 CET 2007


> Op Sat, 3 Nov 2007, schreef Marco van de Voort:
> 
> > > Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:
> > > Even then, there will only be savings if the amount of code that can be 
> > > smartlinked is small.
> > > 
> > > Example: Let's say an LCL package is 10MB. 2 applications are 2MB when 
> > > smartlinked, and 100kb when linked against the package. (The heap can be 
> > > ignored in this discussion because its memory usage does not differ 
> > > depending on packages being used.)
> > > 
> > > Memory use with packages:     10MB+2*100KB = 10,2MB.
> > > Memory use with smartlinking: 2*2MB        =  4MB
> > 
> > _ADDRESS_ space use. Memory use depends on actual usage, since the pages of
> > memory mapped DLLs will only be loaded on access. (and afaik linux does it
> > similarly)
> 
> True, but does that change this calculation? I.e. if 75% of the code is in 
> memory, the calculation still results in the same conclusion. 

If the percentage is the same yes, but since the packages one has a higher
percentage of unused code, the unused pages percentage will also be higher.

> Or is there, 
> according to you, a reason why smartlinked programs have higher loading 
> percentages than dynamically linked programs?

Yes. They contain code that is more or less likely to have a chance to be
really used. The "bloat" in the packages scenario doesn't.  

And such a LCL bpl would be roughly have the TEXT symbols  of each component in
order, and an bunch of unused components would lead to unused pages.



More information about the fpc-devel mailing list