我使用的是双核 C2D 处理器,Windows 7(尽管我见过的所有 MS 操作系统都有这种行为)。当我运行任何单线程 CPU 密集型任务时,它不会坚持使用 1 个核心,而是随机占用第一个核心的 50%,第二个核心的 50%。
他们为什么这么做?这不会降低 L1 缓存的效率吗?
我知道我可以设置进程亲和性,我只是想知道这种行为的原因。
答案1
这不是随机的。他们正在选择最佳位置来放置它,没有必要将它放在目前正在处理重量级进程的处理器上……
它实际上不会影响 L1 缓存效率,因为其他进程很可能已经刷新了 L1 缓存中的所有有用数据。这就是为什么人们如此热衷于共享 L2 和 L3 缓存的原因...