【发布时间】:2014-10-13 13:06:22
【问题描述】:
我将服务器升级到 FreeBSD-10/gcc48,我的项目使用 ar 将子项目放入静态库,现在链接速度异常缓慢。
10.0-RELEASE-p4 FreeBSD 10.0-RELEASE-p4 #0: Tue Jun 3 13:14:57 UTC 2014 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
使用不同的 ar 标志:
“时间 ar -v -c -u -q ...” : 362.62 real 0.11 user 0.82 sys
“时间 ar v -c -r -u -s ...”:407.94 真实 0.13 用户 0.80 系统
这必须比以前慢十倍(FreeBSD-8,股票 GCC 编译器)。我能做些什么来改善这一点? GNU Libtool 只是在幕后使用 ar(所以没有帮助),对吧?我应该完全绕过静态库吗? (但是构建一个 .so 不会花费同样的时间吗?)不用说,这会缩短我的开发周期时间。
【问题讨论】:
-
由于用户和系统时间很少,你似乎把时间花在了IO上。所以做一些调整,例如确保您有足够的 RAM 并且没有交换。尝试另一个文件系统,或尝试将您的目标文件和库放在内存磁盘上。还要在创建全新的静态库时测试性能,与库已经存在时相比(因为您提供了 -u 标志)。还要检查没有 -u 标志。