0

在我的公司中,我们正在为不同版本的 Debian 构建程序。我们在 ESXI 上使用带有虚拟机的 Jenkins 构建链。

这些程序使用 GCC 编译。根据一些测试,我们发现 Stretch/Buster 的编译时间比 Wheezy/Jessie 慢 50%。

例如,一个简单的 Hello World 程序:

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

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

对于小程序,这并不重要,但对于较大的项目,时间差异确实可见(即使使用 -O3 标志):

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

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

我们最大的项目在 Jessie 上编译需要 25 分钟,而在 Stretch 上编译需要 45 分钟。

请注意,这是在两个不同的虚拟机上但在同一物理机上完成的。CPU 型号为:Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz。

我认为其中一个原因可能是应用于内核的崩溃和幽灵补丁。但我不知道这个补丁是否在拉伸时启用。

您对这种性能差异的可能原因有任何想法吗?我怎样才能检查它?以及如果可能的话如何解决它。

问候。

4

0 回答 0