In a personal email (not forum post) it was suggested examining the linker map statistics to see where the elapsed and CPU time might be being spent. Sure enough, there are standout values with the two X86 systems. Item of note is ^^^^^ underscored.
HP rx2660 (1.40GHz/6.0MB) with 4 CPU and 14335MB running VMS V8.4-2L3
Code: Select all
Performance Indicators Page Faults CPU Time Elapsed Time
---------------------- ----------- -------- ------------
Command processing: 62 00:00:00.04 00:00:00.19
Pass 1: 1801 00:00:00.32 00:00:01.92
Allocation/Relocation: 19 00:00:00.01 00:00:00.04
Pass 2: 2849 00:00:00.61 00:00:01.23
Write program segments: 16 00:00:00.00 00:00:00.22
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Symbol table output: 557 00:00:00.01 00:00:00.01
Map data after object module synopsis: 15 00:00:00.23 00:00:00.24
Total run values: 5319 00:00:01.22 00:00:03.87
Digital Personal WorkStation with 1 CPU and 1536MB running VMS V8.4-2L1
Code: Select all
Performance Indicators Page Faults CPU Time Elapsed Time
---------------------- ----------- -------- ------------
Command processing: 143 00:00:00.29 00:00:00.47
Pass 1: 279 00:00:01.85 00:00:01.98
Allocation/Relocation: 76 00:00:00.10 00:00:00.11
Pass 2: 773 00:00:01.66 00:00:02.11
Map data after object module synopsis: 13 00:00:00.44 00:00:00.45
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Symbol table output: 0 00:00:00.00 00:00:00.01
Total run values: 1284 00:00:04.34 00:00:05.14
BXNUC10i7FNH4 6 core i7 1.10GHz 32GB
innotek GmbH VirtualBox with 2 CPU and 7680MB running VMS V9.2
Code: Select all
Performance Indicators Page Faults CPU Time Elapsed Time
---------------------- ----------- -------- ------------
Command processing: 37 00:00:00.10 00:00:00.09
Pass 1: 16886 00:00:00.92 00:00:00.94
Allocation/Relocation: 65 00:00:00.00 00:00:00.00
Pass 2: 11098 00:00:00.72 00:00:00.78
Write program segments: 351 00:02:10.41 00:02:10.50
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Symbol table output: 576 00:00:00.02 00:00:00.02
Map data after object module synopsis: 17 00:00:00.37 00:00:00.37
Total run values: 29030 00:02:12.54 00:02:12.75
Dell Optiplex 9020 SFF i7-4770 QC 3.4Ghz 16GB Windows 10 Pro
innotek GmbH VirtualBox with 2 CPU and 7574MB running VMS V9.2
Code: Select all
Performance Indicators Page Faults CPU Time Elapsed Time
---------------------- ----------- -------- ------------
Command processing: 38 00:00:00.22 00:00:00.23
Pass 1: 17696 00:00:02.99 00:00:03.84
Allocation/Relocation: 106 00:00:00.01 00:00:00.02
Pass 2: 11008 00:00:02.33 00:00:02.90
Write program segments: 355 00:15:36.44 00:20:32.81
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Symbol table output: 581 00:00:00.06 00:00:00.13
Map data after object module synopsis: 235 00:00:00.66 00:00:00.92
Total run values: 30019 00:15:42.71 00:20:40.91
Seems as if a lot of X86 linker time and effort is being expended writing program segments (whatever that means exactly). But it's obviously not just writing to storage.
It was further suggested that this might reflect the object modules themselves. I had previously noticed some seemed disproportionately large. Here are a couple of shim objects from Itanium and the equivalent from X86.
Code: Select all
Sesola123_SSL.OBJ;1 5 29-JAN-2023 13:09
Sesola321_SSL.OBJ;1 5 29-JAN-2023 13:09
Sesola123_SSL.OBJ;1 847 29-JAN-2023 13:08
Sesola321_SSL.OBJ;1 847 29-JAN-2023 13:08
And the same X86 modules not built against SSL.
Code: Select all
Sesola123.OBJ;1 33 29-JAN-2023 13:16
Sesola321.OBJ;1 33 29-JAN-2023 13:16
Seems as those built against SSL (e.g. #include "openssl/ssl.h") are very large in comparison to their Itanium (and Alpha) counterparts. All those
not built against SSL are (within architectural considerations and non-optimising (x)compiler of comparable size.
Is there something amiss with the X86 (x)compiler in that it is including all (SSL) symbols in the object module, or something like this, all of which then must be resolved/processed, (unnecessarily?) chewing CPU and elapsed time?
Code: Select all
VSI C X7.4-547 (GEM 50V6F) for X86 on OpenVMS IA64 V8.4-2L3
Time to escalate this to VSI Engineering via the Service Portal.
Thanks for all input.