我正在编写一个使用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
答案 0 :(得分:1)
答案 1 :(得分:0)
你真的需要做更多的分析。例如。有多少争论?核心阻塞刷新高速缓存的次数是多少次?
答案 2 :(得分:0)
除非两台机器之间的唯一区别是CPU,否则你真的无从知晓。总线速度,内存,磁盘I / O(如果相关),网络I / O(如果相关),32位与64位(如果相关),设备驱动程序和操作系统之间的微妙交互都可以为此做出贡献。
您可能检查的一件事是系统属性|高级|性能设置|高级并确保两台机器上的“处理器调度”相同;至少它会消除一个差异。