4
A
回答
9
我认为这取决于,如果你所有的任务都是“CPU绑定”,它可能会等于你的机器中的CPU数量。不过,如果你的任务是“IO界限”,你可以开始增加数量。
当CPU必须从一个线程切换到另一个线程(上下文切换)时,它会产生成本,所以如果使用太多的线程并且CPU一直在切换,则会降低性能。另一方面,如果你限制了这个参数太多,并且这些操作很长的“IO绑定”操作,并且CPU处于闲置状态等待这些任务完成的时间很长......你没有充分利用你的机器的资源(这是多线程是关于什么)
我认为这取决于每个算法,因为@ Amdahls定律指出,并没有一个主要的经验法则,你可以遵循,你将不得不计划它和tun it:D
干杯。
2
对于本地计算密集型进程,您应该尝试两个值;
- 数量的物理核心或处理器的
- 数量的虚拟内核(包括物理超线程)
其中之一就是在我的经验最佳。有时使用超线程会减慢速度,通常这会有所帮助。在C#中使用Environment.ProcessorCount来查找包含超线程伪造内核的内核数量。实际的物理内核更难以确定。检查其他问题。
对于必须等待资源(db查询,文件检索)的进程可以提供帮助。如果必须等待80%的进程繁忙时间,则经验法则是为它启动5个线程,以便一个线程随时处于繁忙状态。最大化5x20%每个过程需要在本地。
相关问题
- 1. Null DateTime值的最佳解决方案
- 2. 决定VCDB尺寸的最佳做法
- 3. 保存html的最佳实践决定?
- 4. 最佳解决方案
- 5. 最佳SQL解决方案?
- 6. 最佳歧义解决
- 7. 最佳解决方案
- 8. 最佳解决途径
- 9. MaxDegreeOfParallelism有什么作用?
- 10. 班级延伸 - 最佳做法/最佳解决方案
- 11. 最佳策略值
- 12. Mathematica减少/解决:请求非重复值的最佳方法
- 13. 最佳的asp.net crud解决方案?
- 14. 部署先决条件最佳实践
- 15. 解决方案结构/最佳实践
- 16. “Array chaining”的最佳解决方案
- 17. 最佳解决方案后Gurobi回调
- 18. XML和MQ最佳解决方案
- 19. 最佳体系结构解决方案
- 20. 解决僵局的最佳方法
- 21. 最佳解决方案架构
- 22. 最佳实践:解决方案参考
- 23. GWT的最佳数据绑定解决方案
- 24. 决定weka中k-means算法的最佳'k'
- 25. 内部重定向网站的最佳解决方案
- 26. 定位错误<IE8 - 为什么?最佳解决方法?
- 27. 决定需要哪个子类的最佳方法
- 28. 如何决定grabcut算法的最佳迭代次数?
- 29. 休眠batch_size最佳值
- 30. 的最佳方式,价值
其具体到每个算法[Amdahl's Law](http://en.wikipedia.org/wiki/Amdahl%27s_law) – 2011-03-23 07:07:21
@Sanjeevakumar Hiremat很明显,这是我的观点,所以如何在不使用强力方法的情况下做出决定?尽管感谢链接。将阅读。 – 2011-03-24 04:12:39