编译的coreutils-8.4在Ubuntu 8.04 86
的Intel Atom 1.6 GHz的HT启用:
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make > /dev/null
real 2m33.375s
user 2m22.873s
sys 0m10.541s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make -j2 > /dev/null
real 1m54.707s
user 3m26.121s
sys 0m13.821s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make > /dev/null
real 2m33.372s
user 2m22.753s
sys 0m10.657s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make -j2 > /dev/null
real 1m54.851s
user 3m26.145s
sys 0m13.685s
~/coreutils-8.4$
所以超线程降低了运行时间75%,这相当于33%更多处理能力。 (我跑了他们两次,以确保一切都在内存中缓存。)
,这里是一个对照实验表明,单独make -j2
不会提高速度在Ubuntu 8.04的x86编译的coreutils-8.4
单核心2四核2.5 GHz虚拟机(无HT):
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make > /dev/null
real 0m44.453s
user 0m38.870s
sys 0m5.500s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make -j2 > /dev/null
real 0m45.131s
user 0m40.450s
sys 0m4.580s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make > /dev/null
real 0m44.621s
user 0m39.090s
sys 0m5.340s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make -j2 > /dev/null
real 0m45.165s
user 0m40.390s
sys 0m4.610s
~/coreutils-8.4$
我没有近期的经验,但不编译往往是I/O绑定? – Ken 2010-01-06 18:12:53
玩“make -j N”并测量不同N的系统资源? – 2010-01-06 18:17:28
@Nikolai,如果我有一个超线程的CPU玩,我会。我在问这个问题,所以我知道购买一件是否值得。 – 2010-01-06 18:47:33