[fpc-pascal] fpdoc slow on Linux x64... tweaking?

Reinier Olislagers reinierolislagers at gmail.com
Wed Feb 22 08:49:25 CET 2012


Running fpcup on Linux x86, Linux x64 with FPC fixes_2_6

Building LCL chm docs with build_lcl_docs, which calls fpdoc:
On x86, seems to works ok.
On x64, takes a long time. fpdoc takes a huge amount of CPU (perhaps
memory as well, haven't looked).

I suspect the reason the doc generation is slow is because of fpdoc.

Had a quick look at fpc trunk on Linux x64, problem seems to persist but
it might be a lot better.... still, if possible, I'd like to offer users
the possibility to run fixes 2.6...



The wiki
http://wiki.lazarus.freepascal.org/chm_backend_for_fpdoc
does warn you about this:
"Warning: this script enabled all fpdoc bells and whistles, and before
28feb took 40mins to complete on a core2-6600. After the cleanup still
4minutes and 400MB memory. If you want to do this in a nightly build,
make sure you have a fpdoc from trunk, preferably from a checkout that
was compiled with optimization on. That knocks off another half minute.
( 12.5%)"

Questions:
1) Is it expected that the x64 version is much slower?
2) Is there anything else I can do to speed up LCL doc generation?
3) Optimize for speed probably is best, so recompile fpdoc with
something like
cd ~/fpc
make fpdoc OPT="-O3"
fpc fpdoc.pp
Some optimistic (i.e. don't know what I'm doing exactly) browsing in FPC
User's Guide gave:
-OaPARAM=VALUE
-OoREGVAR,OoSTACKFRAME,OoLOOPUNROLL,OoTAILREC
-Chxxx Reserves xxx bytes heap. xxx should be between 1024 and 67107840.
-CPX=N Set the packing for X to N. X can be PACKSET, PACKENUM or
PACKRECORD, and N can be a value of 1,2,4,8 or one of the keywords
DEFAULT or NORMAL.
-Csxxx Set stack size to xxx.
-CX Create a smartlinked unit when writing a unit.
-Xs strip

Are these useful (and at what values if so ;) ?
What about whole-program optimization?

Thanks,
Reinier



More information about the fpc-pascal mailing list