首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如今,设置线程亲和性而不是将其留给操作系统的充分理由是什么?

如今,设置线程亲和性而不是将其留给操作系统的充分理由是什么?
EN

Stack Overflow用户
提问于 2011-08-05 22:12:24
回答 5查看 576关注 0票数 2

在这里搜索“线程亲和性”的答案,我发现很多人对此很感兴趣,但除了可能获得稳定的QueryPerformanceTimer结果外,几乎没有理由这样做。

假设一个现代的操作系统和一个现代的2-4插槽工作站/服务器级机器,配备现代的4-6核CPU,还有什么好的理由让人认为他们比操作系统的调度器更了解?在现实世界中,有没有采取更多控制头部亲和力是正确的做法?可以展示哪些类型的性能优势?

上一次我在某个地方看到了设置线程亲和性的好案例(比如,它得到了系统性能真正和显著改进的具体结果的支持),那是关于Win2K设备驱动程序的一些晦涩难懂的事情。但我已经很多年没有见过这样的事情了,所以当有人告诉我他们需要控制线程亲和力时(但不是为什么),这些天我深表怀疑……但很好奇会有不同的表现。

EN

回答 5

Stack Overflow用户

发布于 2011-08-05 23:45:35

主要原因是如果你有严重依赖缓存的东西。操作系统调度程序不一定会按照您希望的程度考虑这一点。

票数 1
EN

Stack Overflow用户

发布于 2011-12-15 01:38:34

我使用它将线程分配给内核;例如,在模拟中,您完全在一个内核上执行物理操作,并允许在另一个内核上执行其余的计算。如果您在一个了解硬件的紧凑环境中,那么能够控制这一点是有意义的。

当然,这个配置需要在每个系统上完成,所以默认情况下,我让操作系统决定要在其上运行的内核,但保留限制内核使用的选项。

票数 1
EN

Stack Overflow用户

发布于 2012-02-18 15:27:38

在操作系统内核中,有时在内核模式驱动程序中,您需要在每个CPU上执行相同的操作(例如,更新系统寄存器)。您可以在单个线程的循环中执行此操作,在每次迭代中更改亲和性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6957687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档