Golang is know to be a fast compiler because the language is simple and the compiler is written in a fast languege (now Go, former language was C).
But one can always wish for a faster compilation time.
Comparing two generations of SSD shows the easiest way to speed up compilation.
Switching from an older Samsung 970 Evo Plus to a more modern Western Digital 850 SSD nearly doubles compilation speed. Interestingly the newer SSD decreases faster in performance with larger projects with more LOC.
Crystal Diskmark giving 7047 Mb/s for the WD850 and 3294 Mb/s for the Samsung 970 Evo Plus.
And the 850 isn't even the fastest SSD currently available.
With the upcoming PCI5 SSDs we'll see another speed up of around 50%.
Compiler | Func | LOC | Time | Loc/s | CPU | Cores | Drive | RAM | Version | Vendor | OS |
---|---|---|---|---|---|---|---|---|---|---|---|
Go | 10000 | 111098 | 3.85 | 28857 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 20000 | 222198 | 8.04 | 27637 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 30000 | 333298 | 14.65 | 22751 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 40000 | 444398 | 17.01 | 26126 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 50000 | 555498 | 22.49 | 24700 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 60000 | 666598 | 27.93 | 23867 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 70000 | 777698 | 33.99 | 22880 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 80000 | 888798 | 42.33 | 20997 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 90000 | 999898 | 47.19 | 21189 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 100000 | 1110998 | 54.74 | 20296 | 3900x | 12P / 0E | WD_BLACK SN850 | 32 | 19.3 | WSL | |
Go | 10000 | 111098 | 8.2 | 13549 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 20000 | 222198 | 16.57 | 13410 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 30000 | 333298 | 26.35 | 12649 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 40000 | 444398 | 33.79 | 13152 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 50000 | 555498 | 42.03 | 13217 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 60000 | 666598 | 50.81 | 13119 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 70000 | 777698 | 65.9 | 11801 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 80000 | 888798 | 77.57 | 11458 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 90000 | 999898 | 88.16 | 11342 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL | |
Go | 100000 | 1110998 | 100.42 | 11064 | 3900x | 12P / 0E | Samsung SSD 970 EVO Plus | 32 | 19.3 | WSL |