作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是针对 Windows 环境中多线程的性能问题。
在测试我的代码后,我得到的结果是增加线程数不会提高并行计算的性能,并且在经过一些计数后变得更少。到底是怎么回事?是否可以找出最佳线程数的公式:F(processors, memory..) = ?
最佳答案
首先,由于您的 CPU 对它可以并发执行的线程数有硬件限制(例如,四核为 4,如果具有超线程,则为两倍),因此您无法通过创建比现有线程更多的线程来获得更好的性能核心。正如您所见,额外的线程实际上会降低性能,因为在每单位时间完成的工作保持不变的情况下,线程调度和同步的开销会增加。
Task Parallel Library如果您想让运行时自动为您管理一些参数,这是一个非常好的起点——如果将来您发现有理由这样做,您可以进行显式控制。
关于.net - 为什么三个线程比 10+ 快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9514267/
我是一名优秀的程序员,十分优秀!