|
Folks,
This is my environment:
Base 7.0.10
Visual Studio compiler version: Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35215 for x64
sscanRecord version: master branch in the link above.
I tested by deleting all of the xxxRecord.obj files in the O.windows-64 or O.windows-x64-static directories and then timing how long it took "make" to complete. This is the time to both compile the xxxRecord.c files and the time to link the relevant library.
"make" was run without the -j option, so the build was sequential, not parallel.
The following table compares the time to compile and link the relevant library for a number of EPICS records on both static builds (windows-x64-static) and dynamic builds (windows-x64).
|
Files
|
Total lines of C code
|
Time (s) for windows-x64
|
Time (s) for windows-x64-static
|
|
All 34 record files in base/modules/database/src/std/rec
|
13,369
|
54
|
59
|
|
All 5 record files in calc/calcApp/src
|
5,460
|
30
|
23
|
|
sscanRecord.c
|
5,596
|
242
|
251
|
This is what I see with Windows TaskManager when compiling sscanRecord.c and linking the library:
This seems very strange to me. It is taking 8-10 times longer to compile and link sscanRecord.c than it does to compile and link essentially the same number of lines of record code for the 5 records in calcApp.
Any ideas?
Thanks,
Mark
|