It seems like when compiling Chromium it really matters how many CPU threads system has.
Two years ago I did a lot of compiling tests on the same motherboard, with 3 different Xeon E5-2XXX flavors:
Code: Select all
E5-2640, 6 physical cores, 12 with HT
E5-2687W v2, 8 physical cores, 16 with HT
E5-2697 v2, 12 physical cores, 24 with HT
In dual-CPU configuration, the same number of memory channels and same type of memory sticks were used for both CPU.
Results for E5-2640, chromium-88.0.4324.182, this test was done to establish a baseline:
Code: Select all
Threads: 12; RAM: 64 GiB; Chromium compile time: 6h 50m 36s
Results for single E5-2687W v2, chromium-89.0.4389.72, MAKEOPTS="-j15" (From X. No Firefox, no Teams, no Conky):
Code: Select all
RAM: 32 GiB (4x8GiB); Chromium compile time: 4h 10m 58s
RAM: 32 GiB (16GiB+2x8GiB); Chromium compile time: 4h 27m 47s (From X. Firefox and Teams open) (Memory peak use: 30441712 KiB) (Swap: 3.3M)
RAM: 32 GiB (16GiB+2x8GiB); Chromium compile time: 4h 14m 33s (Memory peak use: 28345864 KiB) (Swap: 264K)
RAM: 32 GiB (2x16GiB); Chromium compile time: 4h 18m 25s (Memory peak use: 26618540 KiB) (Swap: 776K)
RAM: 32 GiB (1x32GiB@1866MHz); Chromium compile time: 4h 19m 25s (Memory peak use: 27189324 KiB) (Swap: 264K)
RAM: 40 GiB (5x8GiB@1333MHz); Chromium compile time: 4h 10m 57s (Memory peak use: 28612384 KiB) (Swap: 520K)
RAM: 40 GiB (16GiB+3x8GiB@1333MHz); Chromium compile time: 4h 11m 39s (Memory peak use: 27137568 KiB) (Swap: 264K)
RAM: 40 GiB (2x16GiB+8GiB@1333MHz); Chromium compile time: 4h 14m 42s (Memory peak use: 27825476 KiB) (Swap: 8K)
RAM: 40 GiB (2x16GiB+8GiB@1600MHz); Chromium compile time: 4h 12m 6s (Memory peak use: 28300296 KiB) (Swap: 520K)
RAM: 48 GiB (16GiB+4x8GiB@1333MHz); Chromium compile time: 4h 13m 16s (Memory peak use: 28211884 KiB) (Swap: 520K)
RAM: 48 GiB (2x16GiB+2x8GiB@1333MHz); Chromium compile time: 4h 12m 11s (Memory peak use: 28576656 KiB) (Swap: 0)
RAM: 48 GiB (2x16GiB+2x8GiB@1600MHz); Chromium compile time: 4h 10m 31s (Memory peak use: 27582552 KiB) (Swap: 0)
RAM: 48 GiB (3x16GiB@1600MHz); Chromium compile time: 4h 11m 53s (Memory peak use: 27397824 KiB) (Swap: 0)
RAM: 56 GiB (16GiB+5x8GiB@1333MHz); Chromium compile time: 4h 12m 35s (Memory peak use: 26961056 KiB) (Swap: 0)
RAM: 56 GiB (2x16GiB+3x8GiB@1333MHz); Chromium compile time: 4h 14m 13s (Memory peak use: 26305972 KiB) (Swap: 0)
RAM: 56 GiB (3x16GiB+8GiB@1333MHz); Chromium compile time: 4h 13m 16s (Memory peak use: 28141656 KiB) (Swap: 0)
RAM: 56 GiB (3x16GiB+8GiB@1600MHz); Chromium compile time: 4h 10m 34s (Memory peak use: 26871600 KiB) (Swap: 0)
RAM: 64 GiB (8x8GiB@1333MHz); Chromium compile time: 4h 9m 47s (Memory peak use: 28140252 KiB) (Swap: 0)
RAM: 64 GiB (2x16GiB+4x8GiB@1333MHz); Chromium compile time: 4h 14m 9s (Memory peak use: 26955104 KiB) (Swap: 0)
RAM: 64 GiB (4x16GiB@1600MHz); Chromium compile time: 4h 10m 29s (Memory peak use: 27978364 KiB) (Swap: 0)
RAM: 64 GiB (2x32GiB@1333MHz); Chromium compile time: 4h 13m 55s (Memory peak use: 28093332 KiB) (Swap: 0)
RAM: 64 GiB (2x32GiB@1866MHz); Chromium compile time: 4h 11m 38s (Memory peak use: 26375220 KiB) (Swap: 0)
RAM: 72 GiB (2x16GiB+5x8GiB@1333MHz); Chromium compile time: 4h 12m 16s (Memory peak use: 27742192 KiB) (Swap: 0)
RAM: 96 GiB (4x16GiB+4x8GiB@1333MHz); Chromium compile time: 4h 12m 43s (Memory peak use: 29047576 KiB) (Swap: 0)
RAM: 96 GiB (4x16GiB+4x8GiB@1600MHz); Chromium compile time: 4h 10m 48s (Memory peak use: 28041900 KiB) (Swap: 0)
RAM: 96 GiB (3x32GiB@1333MHz); Chromium compile time: 4h 13m 46s (Memory peak use: 28461792 KiB) (Swap: 0)
RAM: 96 GiB (3x32GiB@1866MHz); Chromium compile time: 4h 9m 57s (Memory peak use: 27419148 KiB) (Swap: 0)
RAM: 128 GiB (4x16GiB+8x8GiB@1066MHz); Chromium compile time: 4h 15m 35s (Memory peak use: 27407152 KiB) (Swap: 0)
RAM: 128 GiB (4x32GiB@1333MHz); Chromium compile time: 4h 12m 17s (Memory peak use: 26469860 KiB) (Swap: 0)
RAM: 128 GiB (4x32GiB@1866MHz); Chromium compile time: 4h 8m 13s (Memory peak use: 26389000 KiB) (Swap: 0)
RAM: 160 GiB (5x32GiB@1333MHz); Chromium compile time: 4h 25m 32s (Memory peak use: 27983212 KiB) (Swap: 0)
RAM: 160 GiB (5x32GiB@1866MHz); Chromium compile time: 4h 16m 2s (Memory peak use: 26745744 KiB) (Swap: 0)
RAM: 192 GiB (6x32GiB@1333MHz); Chromium compile time: 4h 14m 33s (Memory peak use: 26525668 KiB) (Swap: 0)
RAM: 192 GiB (6x32GiB@1866MHz); Chromium compile time: 4h 9m 41s (Memory peak use: 27587068 KiB) (Swap: 0)
RAM: 224 GiB (7x32GiB@1333MHz); Chromium compile time: 4h 22m 50s (Memory peak use: 27987444 KiB) (Swap: 0)
RAM: 224 GiB (7x32GiB@1866MHz); Chromium compile time: 4h 14m 42s (Memory peak use: 28137312 KiB) (Swap: 0)
RAM: 256 GiB (8x32GiB@1333MHz); Chromium compile time: 4h 11m 58s (Memory peak use: 27578092 KiB) (Swap: 0)
RAM: 256 GiB (8x32GiB@1866MHz); Chromium compile time: 4h 8m 40s (Memory peak use: 28297108 KiB) (Swap: 0)
Results for dual E5-2687W v2, chromium-89.0.4389.72, MAKEOPTS="-j31" (From X. No Firefox, no Teams, no Conky):
Code: Select all
RAM: 64 GiB ([4x8GiB@1333MHz] + [4x8GiB@1333MHz]); Chromium compile time: 2h 17m 42s (Memory peak use: 46600136 KiB) (Swap: 8K)
RAM: 64 GiB ([16GiB+2x8GiB@1333MHz] + [16GiB+2x8GiB@1333MHz]); Chromium compile time: 2h 21m 20s (Memory peak use: 47260604 KiB) (Swap: 0)
RAM: 64 GiB ([16GiB+2x8GiB@1600MHz] + [16GiB+2x8GiB@1600MHz]); Chromium compile time: 2h 19m 17s (Memory peak use: 46182344 KiB) (Swap: 0)
RAM: 64 GiB ([16GiB+2x8GiB@1600MHz] + [16GiB+2x8GiB@1600MHz]); Chromium compile time: 2h 19m 17s (Memory peak use: 46182344 KiB) (Swap: 0)
RAM: 64 GiB ([1x32GiB@1866MHz] + [1x32GiB@1866MHz]); Chromium compile time: 2h 28m 20s (Memory peak use: 47142328 KiB) (Swap: 0)
RAM: 80 GiB ([5x8GiB@1333MHz] + [5x8GiB@1333MHz]); Chromium compile time: 2h 17m 27s (Memory peak use: 47932340 KiB) (Swap: 0)
RAM: 80 GiB ([16GiB+3x8GiB@1333MHz] + [16GiB+3x8GiB@1333MHz]); Chromium compile time: 2h 18m 53s (Memory peak use: 46091972 KiB) (Swap: 0)
RAM: 80 GiB ([2x16GiB+8GiB@1333MHz] + [2x16GiB+8GiB@1333MHz]); Chromium compile time: 2h 20m 14s (Memory peak use: 46745848 KiB) (Swap: 0)
RAM: 80 GiB ([2x16GiB+8GiB@1600MHz] + [2x16GiB+8GiB@1600MHz]); Chromium compile time: 2h 20m 8s (Memory peak use: 46578552 KiB) (Swap: 0)
RAM: 96 GiB ([16GiB+4x8GiB@1333MHz] + [16GiB+4x8GiB@1333MHz]); Chromium compile time: 2h 21m 33s (Memory peak use: 47763108 KiB) (Swap: 0)
RAM: 96 GiB ([2x16GiB+2x8GiB@1333MHz] + [2x16GiB+2x8GiB@1333MHz]); Chromium compile time: 2h 19m 7s (Memory peak use: 46749656 KiB) (Swap: 0)
RAM: 96 GiB ([2x16GiB+2x8GiB@1600MHz] + [2x16GiB+2x8GiB@1600MHz]); Chromium compile time: 2h 17m 11s (Memory peak use: 49964200 KiB) (Swap: 0)
RAM: 112 GiB ([16GiB+5x8GiB@1333MHz] + [16GiB+5x8GiB@1333MHz]); Chromium compile time: 2h 20m 36s (Memory peak use: 48688060 KiB) (Swap: 0)
RAM: 112 GiB ([2x16GiB+3x8GiB@1333MHz] + [2x16GiB+3x8GiB@1333MHz]); Chromium compile time: 2h 20m 52s (Memory peak use: 45401460 KiB) (Swap: 0)
RAM: 128 GiB ([2x16GiB+4x8GiB@1333MHz] + [2x16GiB+4x8GiB@1333MHz]); Chromium compile time: 2h 21m 28s (Memory peak use: 46194968 KiB) (Swap: 0)
RAM: 128 GiB ([2x32GiB@1866MHz] + [2x32GiB@1866MHz]); Chromium compile time: 2h 19m 0s (Memory peak use: 46294860 KiB) (Swap: 0)
RAM: 144 GiB ([2x16GiB+5x8GiB@1333MHz] + [2x16GiB+5x8GiB@1333MHz]); Chromium compile time: 2h 20m 5s (Memory peak use: 47763828 KiB) (Swap: 0)
RAM: 192 GiB ([3x32GiB@1866MHz] + [3x32GiB@1866MHz]); Chromium compile time: 2h 16m 18s (Memory peak use: 47347868 KiB) (Swap: 0)
RAM: 256 GiB ([4x32GiB@1866MHz] + [4x32GiB@1866MHz]); Chromium compile time: 2h 16m 15s (Memory peak use: 45580668 KiB) (Swap: 0)
Results for single E5-2697 v2 (No hyperthreading), chromium-89.0.4389.72, MAKEOPTS="-j11" (From X. No Firefox, no Teams, no Conky):
Code: Select all
RAM: 96 GiB (4x16GiB+4x8GiB@1333MHz); Chromium compile time: 4h 24m 32s (Memory peak use: 22359136 KiB) (Swap: 0)
Results for single E5-2697 v2, chromium-89.0.4389.72, MAKEOPTS="-j23" (From X. No Firefox, no Teams, no Conky):
Code: Select all
RAM: 40 GiB (5x8GiB@1333MHz); Chromium compile time: 3h 31m 19s (Memory peak use: 36442444 KiB) (Swap: 776K)
RAM: 40 GiB (16GiB+3x8GiB@1333MHz); Chromium compile time: 3h 31m 38s (Memory peak use: 37623988 KiB) (Swap: 264K)
RAM: 40 GiB (2x16GiB+8GiB@1333MHz); Chromium compile time: 3h 32m 1s (Memory peak use: 37257496 KiB) (Swap: 520K)
RAM: 40 GiB (2x16GiB+8GiB@1600MHz); Chromium compile time: 3h 31m 6s (Memory peak use: 37011088 KiB) (Swap: 520K)
RAM: 48 GiB (16GiB+4x8GiB@1333MHz); Chromium compile time: 3h 30m 30s (Memory peak use: 36003384 KiB) (Swap: 1M)
RAM: 48 GiB (2x16GiB+2x8GiB@1333MHz); Chromium compile time: 3h 29m 14s (Memory peak use: 37218724 KiB) (Swap: 520K)
RAM: 48 GiB (2x16GiB+2x8GiB@1600MHz); Chromium compile time: 3h 27m 48s (Memory peak use: 36307636 KiB) (Swap: 264K)
RAM: 48 GiB (3x16GiB@1600MHz); Chromium compile time: 3h 28m 36s (Memory peak use: 36950516 KiB) (Swap: 520K)
RAM: 56 GiB (16GiB+5x8GiB@1333MHz); Chromium compile time: 3h 29m 59s (Memory peak use: 36517132 KiB) (Swap: 0)
RAM: 56 GiB (2x16GiB+3x8GiB@1333MHz); Chromium compile time: 3h 30m 31s (Memory peak use: 36825840 KiB) (Swap: 0)
RAM: 56 GiB (3x16GiB+8GiB@1333MHz); Chromium compile time: 3h 29m 20s (Memory peak use: 37456016 KiB) (Swap: 0)
RAM: 56 GiB (3x16GiB+8GiB@1600MHz); Chromium compile time: 3h 27m 47s (Memory peak use: 36453632 KiB) (Swap: 0)
RAM: 64 GiB (2x32GiB@1333MHz); Chromium compile time: 3h 30m 28s (Memory peak use: 37541248 KiB) (Swap: 0)
RAM: 64 GiB (8x8GiB@1333MHz); Chromium compile time: 3h 26m 59s (Memory peak use: 37770160 KiB) (Swap: 0)
RAM: 56 GiB (2x16GiB+4x8GiB@1333MHz); Chromium compile time: 3h 29m 46s (Memory peak use: 35827564 KiB) (Swap: 0)
RAM: 64 GiB (4x16GiB@1600MHz); Chromium compile time: 3h 27m 31s (Memory peak use: 36272684 KiB) (Swap: 0)
RAM: 64 GiB (2x32GiB@1866MHz); Chromium compile time: 3h 27m 17s (Memory peak use: 37899560 KiB) (Swap: 0)
RAM: 72 GiB (2x16GiB+5x8GiB@1333MHz); Chromium compile time: 3h 29m 39s (Memory peak use: 36596516 KiB) (Swap: 0)
RAM: 96 GiB (4x16GiB+4x8GiB@1333MHz); Chromium compile time: 3h 28m 51s (Memory peak use: 36098756 KiB) (Swap: 0)
RAM: 96 GiB (4x16GiB+4x8GiB@1600MHz); Chromium compile time: 3h 27m 50s (Memory peak use: 36916308 KiB) (Swap: 0)
RAM: 96 GiB (4x16GiB+4x8GiB@1333MHz); Chromium compile time: 3h 29m 6s (Memory peak use: 36695088 KiB) (Swap: 0)
RAM: 96 GiB (4x16GiB+4x8GiB@1600MHz); Chromium compile time: 3h 27m 24s (Memory peak use: 36572624 KiB) (Swap: 0)
RAM: 96 GiB (3x32GiB@1866MHz); Chromium compile time: 3h 27m 2s (Memory peak use: 36127364 KiB) (Swap: 0)
RAM: 128 GiB (4x16GiB+8x8GiB@1333MHz); Chromium compile time: 3h 28m 52s (Memory peak use: 35736916 KiB) (Swap: 0)
RAM: 128 GiB (4x32GiB@1866MHz); Chromium compile time: 3h 26m 35s (Memory peak use: 37419204 KiB) (Swap: 0)
RAM: 160 GiB (5x32GiB@1866MHz); Chromium compile time: 3h 31m 50s (Memory peak use: 36269956 KiB) (Swap: 0)
RAM: 192 GiB (6x32GiB@1866MHz); Chromium compile time: 3h 27m 12s (Memory peak use: 36458584 KiB) (Swap: 0)
RAM: 224 GiB (7x32GiB@1866MHz); Chromium compile time: 3h 26m 30s (Memory peak use: 36759788 KiB) (Swap: 0)
RAM: 256 GiB (8x32GiB@1866MHz); Chromium compile time: 3h 25m 55s (Memory peak use: 36601128 KiB) (Swap: 0)
Results for dual E5-2697 v2, chromium-89.0.4389.72, MAKEOPTS="-j47" (From X. No Firefox, no Teams, no Conky):
Code: Select all
RAM: 80 GiB ([5x8GiB@1333MHz] + [5x8GiB@1333MHz]); Chromium compile time: 1h 55m 9s (Memory peak use: 60304228 KiB) (Swap: 0)
RAM: 80 GiB ([16GiB+3x8GiB@1333MHz] + [16GiB+3x8GiB@1333MHz]); Chromium compile time: 1h 56m 1s (Memory peak use: 59556612 KiB) (Swap: 0)
RAM: 80 GiB ([2x16GiB+8GiB@1333MHz] + [2x16GiB+8GiB@1333MHz]); Chromium compile time: 1h 56m 13s (Memory peak use: 61527404 KiB) (Swap: 0)
RAM: 80 GiB ([2x16GiB+8GiB@1600MHz] + [2x16GiB+8GiB@1600MHz]); Chromium compile time: 1h 55m 32s (Memory peak use: 59971684 KiB) (Swap: 0)
RAM: 96 GiB ([16GiB+4x8GiB@1333MHz] + [16GiB+4x8GiB@1333MHz]); Chromium compile time: 1h 58m 37s (Memory peak use: 59855504 KiB) (Swap: 0)
RAM: 96 GiB ([2x16GiB+2x8GiB@1333MHz] + [2x16GiB+2x8GiB@1333MHz]); Chromium compile time: 1h 55m 36s (Memory peak use: 62513444 KiB) (Swap: 0)
RAM: 96 GiB ([2x16GiB+2x8GiB@1600MHz] + [2x16GiB+2x8GiB@1600MHz]); Chromium compile time: 1h 54m 55s (Memory peak use: 59102832 KiB) (Swap: 0)
RAM: 112 GiB ([16GiB+5x8GiB@1333MHz] + [16GiB+5x8GiB@1333MHz]); Chromium compile time: 1h 58m 43s (Memory peak use: 61886872 KiB) (Swap: 0)
RAM: 112 GiB ([2x16GiB+3x8GiB@1333MHz] + [2x16GiB+3x8GiB@1333MHz]); Chromium compile time: 1h 59m 50s (Memory peak use: 59373236 KiB) (Swap: 0)
RAM: 128 GiB ([2x16GiB+4x8GiB@1333MHz] + [2x16GiB+4x8GiB@1333MHz]); Chromium compile time: 1h 58m 33s (Memory peak use: 58334020 KiB) (Swap: 0)
RAM: 128 GiB ([2x32GiB@1866MHz] + [2x32GiB@1866MHz]); Chromium compile time: 1h 58m 12s (Memory peak use: 59352460 KiB) (Swap: 0)
RAM: 144 GiB ([2x16GiB+5x8GiB@1333MHz] + [2x16GiB+5x8GiB@1333MHz]); Chromium compile time: 1h 57m 15s (Memory peak use: 61693408 KiB) (Swap: 0)
RAM: 192 GiB ([3x32GiB@1866MHz] + [3x32GiB@1866MHz]); Chromium compile time: 1h 55m 21s (Memory peak use: 60263968 KiB) (Swap: 0)
RAM: 256 GiB ([4x32GiB@1866MHz] + [4x32GiB@1866MHz]); Chromium compile time: 1h 53m 42s (Memory peak use: 58144268 KiB) (Swap: 0)
Results for dual E5-2697 v2, chromium-89.0.4389.72, MAKEOPTS="-j47" (From text console. No X. Stopped all services except for iptables, net, sshd, minidlna, syslog, ntpd, local):
Code: Select all
RAM: 256 GiB ([4x32GiB@1866MHz] + [4x32GiB@1866MHz]); Chromium compile time: 1h 53m 49s (Memory peak use: 57611964 KiB) (Swap: 0)
Results for dual E5-2697 v2, chromium-89.0.4389.72, MAKEOPTS="-j47" (From text console. No X. All services are running):
Code: Select all
RAM: 256 GiB ([4x32GiB@1866MHz] + [4x32GiB@1866MHz]); Chromium compile time: 1h 54m 35s (Memory peak use: 58440636 KiB) (Swap: 0)
I made a few conclusions (though I am not an expert in this field, my knowledge comes from tests):
a) You may have less powerful single-threaded CPU (E5-2697) which will outperform more powerful one (E5-2687W), because E5-2697 has more threads;
b) It really matters how much memory each thread has. If it system has 2GiB per CPU thread or less, chances are that due to swapping system will not compile Chromium.
c) It is important to balance memory sticks over memory channels. This is less important than having more CPU threads/cores, still, there is a room for optimization here.
d) Having a lot of CPU cores and memory is important to compile Chromium. Chromium build needs about 4-5 GiB per core/thread to be happy.
e) Memory speed plays a role a bit, but not as much as changing CPU.
P.S. If you find a typo/error, please do not judge me harshly, I copy-pasted all this info from different places in my benchmark log.