[fpc-devel] FPC/Lazarus Rebuild performance
Adem
listmember at letterboxes.org
Sun Sep 12 23:01:47 CEST 2010
On 9/12/2010 8:14 PM, Jonas Maebe wrote:
> Besides, FPC on Windows does not start any other executables when compiling programs
>
You might be making a distinction (between compiling and building) here,
but when I press 'rebuild lazarus' on that menu, here the list
executables of executables called are below [numbers represent 'events'].
ppcx64.exe: 274,889
make.exe: 27,664
rm.exe: 17,968
fpc.exe: 8,992
gorc.exe: 6,718
lazarus.exe: 6,593
conhost.exe: 4,751
gdate.exe: 3,122
pwd.exe: 1,483
startlazarus.exe: 1,092
cmd.exe: 786
csrss.exe: 642
here, for example, the 'events' for make.exe:
QueryDirectory: 6,502
CreateFile: 5,800
CloseFile: 4,916
CreateFileMapping: 1,591
RegOpenKey: 1,483
QueryNameInformationFile: 727
QueryOpen: 675
RegCloseKey: 643
RegQueryValue: 591
QueryBasicInformationFile: 554
RegSetInfoKey: 552
ReadFile: 511
Load Image: 431
QueryStandardInformationFile: 367
RegQueryKey: 341
QueryFileInternalInformationFile: 318
SetBasicInformationFile: 318
QueryInformationVolume: 288
QueryAttributeInformationVolume: 276
QuerySecurityFile: 228
QueryAttributeTagFile: 205
FileSystemControl: 126
Process Create: 113
RegEnumKey: 26
RegEnumValue: 26
Process Exit: 13
Process Start: 13
Thread Create: 13
Thread Exit: 13
WriteFile: 2
SetDispositionInformationFile: 1
SetEndOfFileInformationFile: 1
I am not sure what all those do, but 'Load Image: 431' seems to mean
'make.exe' is run 431 times.
> And note that even with a profiler you have to know what you should measure, what is relevant and what the results mean before you can draw any conclusions (just like with the disk benchmarking you did). If you don't know anything about that, read the manual/docs. For example, the profiling results I posted earlier to this list do not say anything about the influence of I/O since they were based on sampling the program code executing every 1 millisecond.
>
ATM, I am mainly interested in finding out how many other external
process Lazarus depends on (how many times does it call them) when
compiling/building an exe. For that, a process explorer should be
sufficient.
More information about the fpc-devel
mailing list