Compile times, GCC 4.8

My main development machine at the moment is a ~7 year old Lenovo T440s laptop which is more than snappy enough for my needs but it is starting to show its age when it comes to some of the more javascript intensive web sites and when compiling software.

Moving from OpenBSD to FreeBSD trying the 13 BETA out I noticed that GCC-4.8 was available. Given that GCC 4.8 being the first GCC release stating support for most major features of C++11 I thought it was worth giving it a go to see how the compile times compare with the system compiler, clang 11.

pekwm did require some added compatability code for std::put_time, std::stoi, std::stof and std::to_string which all are C++11 but unavailable using GCC-4.8.5 part of FreeBSD.

The older compiler is indeed a lot faster than current clang (and current GCC, no numbers included).

The unscientific numbers for a full build of pekwm including the test applications:

make, clang 11.0.1

      104.30 real       100.31 user         4.48 sys

make -j4, clang 11.0.1

       48.90 real       174.34 user         6.45 sys

make, gcc 4.8.5

       63.82 real        57.55 user         5.89 sys

make -j4, gcc 4.8.5

       29.51 real       100.03 user         8.63 sys

Disregarding the absolute numbers there’s quite a bit of time to save during development having almost twice as fast compile times. The generated binaries probably are slower assuming optimizers have become better over the years but looking at this from the developers point of view it might actully be worth using older compilers during part of the development cycle to avoid spending time waiting for the compiler to finish.