代码之家  ›  专栏  ›  技术社区  ›  Jay Conrod

超线程对编译器性能的影响?

  •  21
  • Jay Conrod  · 技术社区  · 16 年前

    那么对于编译器工作负载来说,性能会提高吗?如果是,减多少?

    2 回复  |  直到 16 年前
        1
  •  27
  •   netvope    16 年前

    在Ubuntu 8.04 x86上编译coreutils-8.4

    ~/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$
    
        2
  •  0
  •   ajawad987    16 年前