Xeon X5355上的性能降低超过2个线程

时间:2010-02-15 09:01:54

标签: multicore

我正在编写一个使用boost线程并使用boost barrier来同步线程的应用程序。我有两台机器来测试应用程序。

机器1是core2 duo(T8300)cpu机器(Windows XP专业版 - 4GB RAM),我得到以下性能数据:

主题数:1,TPS:21

线程数:2,TPS:35(改善66%)

线程数量的进一步增加会降低TPS,但这是可以理解的,因为机器只有两个核心。

机器2是一个2四核(Xeon X5355)cpu机器(带有4GB RAM的Windows 2003服务器),有8个有效内核。

主题数:1,TPS:21

线程数:2,TPS:27(改善28%)

主题数:4,TPS:25

线程数:8,TPS:24

正如您所看到的,2个线程后性能下降(尽管它有8个内核)。如果程序有一些瓶颈,那么2线程也应该降级。

有什么想法吗? ,解释? ,OS是否在性能方面有一定作用? - 看起来Core2duo(2.4GHz)比Xeon X5355(2.66GHz)更好,但它具有更好的时钟速度。

谢谢

-Zoolii

3 个答案:

答案 0 :(得分:1)

如果这不是与内存页面访问相关的话,我会非常惊讶。您是否尝试将Xein框强制为四个或两个CPU并重新运行测试?

答案 1 :(得分:0)

你真的需要做更多的分析。例如。有多少争论?核心阻塞刷新高速缓存的次数是多少次?

答案 2 :(得分:0)

除非两台机器之间的唯一区别是CPU,否则你真的无从知晓。总线速度,内存,磁盘I / O(如果相关),网络I / O(如果相关),32位与64位(如果相关),设备驱动程序和操作系统之间的微妙交互都可以为此做出贡献。

您可能检查的一件事是系统属性|高级|性能设置|高级并确保两台机器上的“处理器调度”相同;至少它会消除一个差异。