在这里搜索“线程亲和性”的答案,我发现人们对此很感兴趣,但除了可能获得稳定的 QueryPerformanceTimer 结果之外,没有什么理由。
假设有一个现代操作系统和一个具有现代 4-6 核 CPU 的现代 2-4 插槽工作站/服务器类机器,那么人们有什么充分理由认为他们比操作系统的调度程序更了解呢?在现实世界中是否有任何情况下,更多地控制广告亲和性是正确的做法?可以展示什么样的性能优势?
上次我在某处看到一个非常好的设置线程亲和性的案例(例如,它得到了具体结果的支持,显示了系统性能的真正和显着的改进),这是与 Win2K 设备驱动程序有关的一些晦涩的事情。但我已经很多年没有见过这样的事情了,所以当有人告诉我他们需要控制线程亲和性(但不是为什么)时,我对此深感怀疑……但很想知道不是这样的。
最佳答案
主要原因是您的某些内容严重依赖于缓存。操作系统调度程序不一定会按照您希望的程度考虑这一点。
关于multithreading - 如今,设置线程亲和性而不是将其留给操作系统的充分理由是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6957687/