+ -
当前位置:首页 → 问答吧 → binutils-2.19 带来的问题和性能提高

binutils-2.19 带来的问题和性能提高

时间:2008-11-14

来源:互联网

如果您还在固执的使用 glibc-2.7,您需要下面这个补丁。
http://lists.pld-linux.org/mailman/p...25/190128.html

否则,编译 glibc-2.7 时,x86目标平台会遇到下面错误。
代码:
../sysdeps/i386/fpu/ftestexcept.c: Assembler messages:
../sysdeps/i386/fpu/ftestexcept.c:33: Error: suffix or operands invalid for `fnstsw'
问题原因在这里
http://www.nabble.com/The-Linux-binu...d15360254.html

升级到 binutils-2.19,编译时提速很明显。
如,相同宿主环境,偶准备一份交叉编译工具链(CLFS-Sysroot)用时分别如下
binutils-2.18 + gcc-4.3.1 + glibc-2.7 : 120min (同时编译x86 x86_64两套工具链)
binutils-2.19 + gcc-4.3.2 + glibc-2.7 : 80min (更正准确数据是 100min,同时编译x86 x86_64两套工具链)

运行时会不会有大幅提速暂不清楚。

作者: 聚焦深空   发布时间: 2008-11-14

本次还升级了
gmp-4.2.3 -> gmp-4.2.4
mpfr-2.3.1 -> mpfr-2.3.2

把编译性能提高全归到 binutils-2.19 也许有点武断。

作者: 聚焦深空   发布时间: 2008-11-14

差这么多啊……我也试试

作者: qft   发布时间: 2008-11-14

gmp 及 mpfr 估计影响不大,但 binutils 及 gcc 都同时升了一版,这是 binutils 还是 gcc 带来的很难说得清了

再者 gmp 及 mpfr 是 gcc-4.3.x 的依赖,更有可能是 gmp+mpfr+gcc 一起带来的也说不定

Btw,近日测试 gcc-4.4-20081031 的 snapshot,发现 runtime 的性能要比 gcc-4.3.2 为高,但相同软件编译时间要长很多,差不多要增加 60-80% 之谱,而且很多软件不能通过,如内核、kde-3.5.10 之类,又有一些即使能通过但运行时又有问题的,如 wine 等,但可以肯定的是执行效能上是有改善的,值得期待。

作者: d00m3d   发布时间: 2008-11-14

大版本升级
binutils-2.18 -> binutils-2.19

小版本升级
gcc-4.3.1 -> gcc-4.3.2
gmp-4.2.3 -> gmp-4.2.4
mpfr-2.3.1 -> mpfr-2.3.2

一般情况,小版本增大是除错版,大版本增大带来新功能或性能提升,个人倾向功劳大半归 binutils-2.19 。

gcc-4.4 确实值得期待。

作者: 聚焦深空   发布时间: 2008-11-14

俺在公司的机器仍在用 binutils-2.18/gcc-4.3.2/glibc-2.8+gmp-4.2.3/mpfr-2.3.1

有空的时候去编译 wine 或者内核这些比较费时的软件便可对比 binutils 升级前後之别了

作者: d00m3d   发布时间: 2008-11-15

今天花了一点时间对比 binutils/mpfr/gmp 不同版本下的编译情况,系统用 gcc-4.3.2,glibc-2.8-0929,编译的软件是 wine-1.1.15

我把结果用试算表来对照,见附图。

从结果来看,我认为 binutils-2.19 对整体需时改进不大,是有一点,但不算明显。最少对 wine-1.1.15 的情况看来是这样。旧版 mpfr/gmp 对应新版 binutils 就不打算测试了。

印像中 gcc-4.3.2 对比 gcc-4.3.1 编译出来的二进码的体积是比较细的,我觉得 gcc 虽然是 bug fix,不算 major release,但估计比 binutils 带来的影响要多
上传的图像
binutils.png (40.5 KB, 17 次查看)

作者: d00m3d   发布时间: 2008-11-18

d00m3d 兄,打错字了,版本是 20080929.
嘿嘿.

作者: qufo   发布时间: 2008-11-20

有些困惑

偶这里用两套工具链建立基本系统用时分别如下 x86_64 x86
binutils-2.18 + gcc-4.3.1 + glibc-2.7 : 190min 175min
binutils-2.19 + gcc-4.3.2 + glibc-2.7 : 213min 195min
                      +23min +20min
新工具链建立基本系统用时还有增加,(仅升级内核和工具链,基本系统中其他软件版本一样)

与建立工具链时结果刚好相反。

作者: 聚焦深空   发布时间: 2008-11-20