Lots of C++ header files if memory serves me right, that all have a habit of depending on each other (meaning incremental compilation/cached compilation can break rather easily), which was IIRC compounded by use of templates, which are used to create even more header files.
C++ headers have O(n^2) loading complexity due to some weird things in the specification of the language, so the more you have, the messier it gets.
It’s said that you ship your org chart, and Chromium is no exception. It’s just not a problem for Google since their computer scale is “yes”, not “a customer grade laptop”.
It is funny how C++ programmers have been recruited and asked about complexity and big-O notation and then they end up with a build system that is wholly against the gospel.
I know that it is a result of years of development not necessarily a fault of any regular dev, an amalgam of decisions from the long time ago and yada yada, but it doesn’t make it less funny.
Damn, I remember when I ran Gentoo for a while in ~2010 or so, all three of those took multiple hours to build. And that was on a Q6600 with 2GB of RAM, which was I think a reasonable spec machine for the time.
Glad LibreOffice and Firefox have got the times down since then.
I have my build logs going back to 2009. Up until 2012 the Chromium build times were quite alright, under 30 minutes, more or less on par with Firefox. It has started to go off the rails after 2019 when it was still possible to build it under 2 hours on modest hardware. By the end of 2020 it was almost 10 hours and eventually 18 hours. Firefox currently builds in 90 minutes on the same hardware.
From the comments:
Why is Chromium so extremely slow to build? It’s not like Chromium has 10x the features of Firefox.
score 1 · canonical
Firefox definitely builds quicker, but 10 minutes seems abnormally fast. 64 threads at -j24 on my POWER9 was around 20 minutes.
score 1 · canonical
Lots of C++ header files if memory serves me right, that all have a habit of depending on each other (meaning incremental compilation/cached compilation can break rather easily), which was IIRC compounded by use of templates, which are used to create even more header files.
C++ headers have
O(n^2)loading complexity due to some weird things in the specification of the language, so the more you have, the messier it gets.It’s said that you ship your org chart, and Chromium is no exception. It’s just not a problem for Google since their computer scale is “yes”, not “a customer grade laptop”.
score 2 · canonical
It is funny how C++ programmers have been recruited and asked about complexity and big-O notation and then they end up with a build system that is wholly against the gospel.
I know that it is a result of years of development not necessarily a fault of any regular dev, an amalgam of decisions from the long time ago and yada yada, but it doesn’t make it less funny.
score 2 · canonical
Damn, I remember when I ran Gentoo for a while in ~2010 or so, all three of those took multiple hours to build. And that was on a Q6600 with 2GB of RAM, which was I think a reasonable spec machine for the time.
Glad LibreOffice and Firefox have got the times down since then.
score 1 · canonical
I have my build logs going back to 2009. Up until 2012 the Chromium build times were quite alright, under 30 minutes, more or less on par with Firefox. It has started to go off the rails after 2019 when it was still possible to build it under 2 hours on modest hardware. By the end of 2020 it was almost 10 hours and eventually 18 hours. Firefox currently builds in 90 minutes on the same hardware.
score 1 · canonical