0

in my compagny we are building programs for different versions of Debian. We are using a Jenkins build chains with Virtual Machine on ESXI.

The programs compils with GCC. Based on some test we found that the compilation time on Stretch/Buster is 50% slower than on Wheezy/Jessie.

For example, a simple Hello World program :

jessie
------
real    0m0.099s
user    0m0.076s
sys 0m0.012s

buster
------
real    0m0,201s
user    0m0,168s
sys 0m0,032s

For small programs, it's not really important but for bigger projects, time difference is really visible (even with -O3 falgs) :

jessie
------
real    0m29.996s
user    0m26.636s
sys 0m1.688s

buster
------
real    0m59,051s
user    0m53,226s
sys 0m5,164s

Our biggest project takes 25 min on Jessie to compile against 45 min on Stretch.

Note this is done on two different virtual machine but on the same physical machine. The CPU models is : Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz.

I think that one reason might be the meldown and spectre patch that is applied to the kernel. But i don't know if this patch is enabled on stretch.

Do you have any idea about the possible reasons of this performance difference? How i can check it? And how to fix it if possible.

Regards.

SaiyanRiku
  • 327
  • 3
  • 14
  • Could it be that the compiler version is different? – Benjamin Bihler Jul 15 '19 at 08:48
  • Sure the compiler version is different: gcc 4.9.2 on jessie, gcc 6.3.0 on stretch and 8.3.0 on buster. But i don't know if it's a compiler, kernel or VM problem... – SaiyanRiku Jul 15 '19 at 12:13
  • Nobody seems to know. But isn't the probability extremely high that it is the compiler? Could you downgrade to an older compiler on one virtual machine and check what that does with the compile times? – Benjamin Bihler Jul 15 '19 at 12:16
  • 1
    Do you happen to not supply c++ dialect on your compilation command lines? GCC [transitioned to `-std=gnu++14` by default](https://stackoverflow.com/a/33239133/2104472) starting from version 6.0. This may have increased compilation time significantly. – Vladislav Ivanishin Jul 15 '19 at 13:28
  • Thanks, you are right, on my buster machine settings -std=c++98 speed up about 30% of time compared to c++11. Unfortunatly in my case Qt5 needs c++11. – SaiyanRiku Jul 16 '19 at 08:14

0 Answers0