A test of how long it takes to build php. This is a quick running test taking not much more than a minute. Profile below seems to show a parallel build step followed by a link step.

Topdown profile has some noise, but as with other build benchmarks, frontend stalls are high and backend stalls are lower. This also seems to show some branch misprediction, more so in the link phases.

AMD metrics show not much floating point, a lower than average L2 rate. On-cpu is about half of the cores kept busy reflecting the balance between parallel compiles and single link.

elapsed              221.438
on_cpu               0.495          # 7.92 / 16 cores
utime                1555.675
stime                197.680
nvcsw                450612         # 65.88%
nivcsw               233377         # 34.12%
inblock              0              # 0.00/sec
onblock              6228496        # 28127.56/sec
cpu-clock            1748873750683  # 1748.874 seconds
task-clock           1748972352894  # 1748.972 seconds
page faults          58117746       # 33229.654/sec
context switches     528516         # 302.187/sec
cpu migrations       79690          # 45.564/sec
major page faults    2405           # 1.375/sec
minor page faults    58115341       # 33228.279/sec
alignment faults     0              # 0.000/sec
emulation faults     0              # 0.000/sec
branches             1594432602942  # 207.684 branches per 1000 inst
branch misses        52058772559    # 3.27% branch miss
conditional          1213061060088  # 158.008 conditional branches per 1000 inst
indirect             34178953667    # 4.452 indirect branches per 1000 inst
cpu-cycles           6605765875438  # 1.87 GHz
instructions         7229655455835  # 1.09 IPC
slots                14201053487148 #
retiring             2501769169927  # 17.6% (20.7%)
-- ucode             3564851676     #     0.0%
-- fastpath          2498204318251  #    17.6%
frontend             4796047097332  # 33.8% (39.8%)
-- latency           3588596456616  #    25.3%
-- bandwidth         1207450640716  #     8.5%
backend              4211510261156  # 29.7% (34.9%)
-- cpu               469036196670   #     3.3%
-- memory            3742474064486  #    26.4%
speculation          554865158779   #  3.9% ( 4.6%)
-- branch mispredict 548480394414   #     3.9%
-- pipeline restart  6384764365     #     0.0%
smt-contention       2136780015843  # 15.0% ( 0.0%)
cpu-cycles           6604211246538  # 1.86 GHz
instructions         7236674856639  # 1.10 IPC
instructions         2553785601077  # 43.692 l2 access per 1000 inst
l2 hit from l1       93760895583    # 21.62% l2 miss
l2 miss from l1      14637262233    #
l2 hit from l2 pf    8330227096     #
l3 hit from l2 pf    4566519708     #
l3 miss from l2 pf   4923249837     #
instructions         2553295973680  # 24.210 float per 1000 inst
float 512            25045          # 0.000 AVX-512 per 1000 inst
float 256            3210309        # 0.001 AVX-256 per 1000 inst
float 128            61812154017    # 24.209 AVX-128 per 1000 inst
float MMX            0              # 0.000 MMX per 1000 inst
float scalar         0              # 0.000 scalar per 1000 inst

Intel metrics

elapsed              235.695
on_cpu               0.506          # 8.09 / 16 cores
utime                1765.203
stime                141.292
nvcsw                440121         # 65.10%
nivcsw               235947         # 34.90%
inblock              28440          # 120.66/sec
onblock              6217808        # 26380.75/sec
cpu-clock            1902685896087  # 1902.686 seconds
task-clock           1902723588935  # 1902.724 seconds
page faults          57383846       # 30158.793/sec
context switches     526263         # 276.584/sec
cpu migrations       70667          # 37.140/sec
major page faults    1502           # 0.789/sec
minor page faults    57382344       # 30158.003/sec
alignment faults     0              # 0.000/sec
emulation faults     0              # 0.000/sec
branches             1557014667338  # 204.660 branches per 1000 inst
branch misses        37368996589    # 2.40% branch miss
conditional          1557020297226  # 204.661 conditional branches per 1000 inst
indirect             257048243067   # 33.787 indirect branches per 1000 inst
slots                13590541943186 #
retiring             4548295163703  # 33.5% (33.5%)
-- ucode             358429660714   #     2.6%
-- fastpath          4189865502989  #    30.8%
frontend             4396200016791  # 32.3% (32.3%)
-- latency           2292355074576  #    16.9%
-- bandwidth         2103844942215  #    15.5%
backend              2506228334418  # 18.4% (18.4%)
-- cpu               822785143049   #     6.1%
-- memory            1683443191369  #    12.4%
speculation          2187866665844  # 16.1% (16.1%)
-- branch mispredict 2120136787339  #    15.6%
-- pipeline restart  67729878505    #     0.5%
smt-contention       0              #  0.0% ( 0.0%)
cpu-cycles           4992606491814  # 1.33 GHz
instructions         6885561939212  # 1.38 IPC
l2 access            216898743213   # 45.077 l2 access per 1000 inst
l2 miss              66417480784    # 30.62% l2 miss

Process overview shows the C compiler frontend takes most of the time with ~2300 compilations over three runs and 221 invocations of ld. Still 175k processes started. The high number in the “running” suggests we still lose some events.

175042 processes
	2307 cc1                   1142.99    76.63
	2208 as                      42.90     4.12
	 68 clinfo                  16.20     6.65
	91992 bash                    10.43    12.96
	  3 minilua                  4.18     0.02
	221 ld                       2.43     1.31
	 38 vulkaninfo               1.15     0.96
	  1 xz                       0.70     0.06
	  6 make                     0.59     0.15
	  4 vulkani:disk$0           0.13     0.11
	  6 glxinfo:gdrv0            0.11     0.10
	 13 php                      0.09     0.05
	  6 clang                    0.08     0.04
	  2 llvmpipe-0               0.06     0.05
	  2 llvmpipe-1               0.06     0.05
	  2 llvmpipe-10              0.06     0.05
	  2 llvmpipe-11              0.06     0.05
	  2 llvmpipe-12              0.06     0.05
	  2 llvmpipe-13              0.06     0.05
	  2 llvmpipe-14              0.06     0.05
	  2 llvmpipe-15              0.06     0.05
	  2 llvmpipe-2               0.06     0.05
	  2 llvmpipe-3               0.06     0.05
	  2 llvmpipe-4               0.06     0.05
	  2 llvmpipe-5               0.06     0.05
	  2 llvmpipe-6               0.06     0.05
	  2 llvmpipe-7               0.06     0.05
	  2 llvmpipe-8               0.06     0.05
	  2 llvmpipe-9               0.06     0.05
	  2 glxinfo                  0.05     0.04
	  2 glxinfo:cs0              0.05     0.04
	  2 glxinfo:disk$0           0.05     0.04
	  2 glxinfo:sh0              0.05     0.04
	  2 glxinfo:shlo0            0.05     0.04
	  1 tar                      0.04     0.66
	 15 find                     0.03     0.10
	  3 rocminfo                 0.03     0.00
	  1 lspci                    0.01     0.01
	4779 rm                       0.00     0.53
	2266 cc                       0.00     0.04
	  1 ps                       0.00     0.01
	42477 sed                      0.00     0.00
	3813 cat                      0.00     0.00
	1095 mv                       0.00     0.00
	1055 tr                       0.00     0.00
	1010 shtool                   0.00     0.00
	238 sh                       0.00     0.00
	228 grep                     0.00     0.00
	216 collect2                 0.00     0.00
	 95 mkdir                    0.00     0.00
	 63 cut                      0.00     0.00
	 52 awk                      0.00     0.00
	 44 conftest                 0.00     0.00
	 34 wc                       0.00     0.00
	 28 expr                     0.00     0.00
	 18 dirname                  0.00     0.00
	 18 xargs                    0.00     0.00
	 17 uname                    0.00     0.00
	 14 gsettings                0.00     0.00
	 13 configure                0.00     0.00
	 13 gcc                      0.00     0.00
	 13 pkg-config               0.00     0.00
	  8 chmod                    0.00     0.00
	  8 stat                     0.00     0.00
	  8 systemd-detect-          0.00     0.00
	  7 basename                 0.00     0.00
	  7 ln                       0.00     0.00
	  6 cp                       0.00     0.00
	  6 llvm-link                0.00     0.00
	  5 nawk                     0.00     0.00
	  5 phoronix-test-s          0.00     0.00
	  5 rmdir                    0.00     0.00
	  5 sort                     0.00     0.00
	  4 diff                     0.00     0.00
	  4 hostname                 0.00     0.00
	  3 ldconfig.real            0.00     0.00
	  3 mktemp                   0.00     0.00
	  3 nm                       0.00     0.00
	  3 time-compile-ph          0.00     0.00
	  2 arch                     0.00     0.00
	  2 echo                     0.00     0.00
	  2 ls                       0.00     0.00
	  2 lscpu                    0.00     0.00
	  2 tail                     0.00     0.00
	  2 which                    0.00     0.00
	  2 xset                     0.00     0.00
	  1 bison                    0.00     0.00
	  1 cmp                      0.00     0.00
	  1 date                     0.00     0.00
	  1 dconf worker             0.00     0.00
	  1 dmesg                    0.00     0.00
	  1 dmidecode                0.00     0.00
	  1 file                     0.00     0.00
	  1 getconf                  0.00     0.00
	  1 gmain                    0.00     0.00
	  1 head                     0.00     0.00
	  1 ifconfig                 0.00     0.00
	  1 ip                       0.00     0.00
	  1 ldd                      0.00     0.00
	  1 lsmod                    0.00     0.00
	  1 qdbus                    0.00     0.00
	  1 readlink                 0.00     0.00
	  1 realpath                 0.00     0.00
	  1 strip                    0.00     0.00
	  1 stty                     0.00     0.00
	  1 systemctl                0.00     0.00
	  1 template.sh              0.00     0.00
	  1 touch                    0.00     0.00
	  1 uniq                     0.00     0.00
	  1 xrandr                   0.00     0.00
3586 processes running
3641 maximum processes