【发布时间】:2011-03-25 11:47:04
【问题描述】:
大家好,我正在 Scala 中开发一个并发程序,我正在运行一些测试来检查效率,但我似乎得到了一些非常奇怪的数字。
在每次测试中,我都会增加“工人”或产生的进程的数量。我期望发现运行时间会增加,因为这些进程从 1 增加到通信开销和竞争条件变得足够高以将其取消的程度。因此,例如,我希望看到类似的内容:
进程 ------ 1 ------ 2 ------ 3 ------ 4 ------ 5 ------ 6 ---- -- 7
运行时间(秒)---- 3 ------- 2.5 ------- 2 ------- 1.5 ------- 2 ------ - 2.5 ------- 3
无论如何,我想问的是,是否有人知道英特尔酷睿 i5-430M 处理器可以容纳多少线程。我知道它通常具有编辑:2 个内核和 4 个线程。这是否意味着在产生 5 个或更多进程后性能应该开始变差?和上面的例子一样吗?
任何帮助将不胜感激。
【问题讨论】:
-
我与参与者的并发基准测试显示了一个奇怪的行为(当然没有其他进程使用 CPU):与使用 6 个内核上的 6 个线程相比,使用 6 个线程仅产生 4%(应该是 20%)的性能5个线程。但是 5 个线程 22%(应该是 25%)与 4 个线程相比。与 2 个线程相比,4 个线程 85%(应该是 100%)。
标签: multithreading scala concurrency cpu