这个多线程程序的瓶颈,有可能在内存访问上面。
比如有大量的 cache miss,以及内存带宽不够之类的。
以前听 lvsoft 说 intel 有个相关的工具。但过于高端,我没用过。或许你可以往这个方向查查。
【 在 il15 (il15) 的大作中提到: 】
: 举个例子:一个数值计算的测试程序,单线程的情况下,运算2百万次,计算的部分大约用时5s(总用时稍微多点)。然后对计算部分用了8个线程,大概提高了接近4倍。但是总的cpu时间(包括了每个线程的用时)要10s多点,把每个线程的用时大出来,大概是每个线程1.2s。
: 然后有两个问题想请教一下:
: 一是多线程的情况下,所有线程加在一起的总用时比单线程多了近一倍,这有可能是什么原因引起的呢?
: ...................
--
FROM 125.78.67.*