Op Sun, 31 May 2009, schreef Jonas Maebe:

Yes, the but the results are not very impressive. The reason is due to the way the LCL is constructed, almost every declared class can theoretically be instantiated. On the other hand, I read that recently the LCL was restructured a bit to improve the situation, so maybe the results would be better now.

Also note that WPO can do little about published methods (since it must assume that these can all be called via RTTI).

Also not that many references through initialization are just one part of the equation. Many code is referenced through resource files, i.e. if a class X can appear in a resource file, the code to construct the class must be in the executable, even though class X will not actually be in the resource file.

One area that particulary demonstrates this is the Tform, it has a lot of fields that can optionally contain a reference to another class. Even when you set all these fields to nil and never construct such a class, there code will end up in the executable, because the executable will only learn that the field is set to nil when it processes the resource file at runtime.

These two aspects (unit initialisation and resource files) make both Delphi and Lazarus executables grow quickly, the LCL more because it has more initialization references than the VCL.

Daniël
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to