我试图向某人解释为什么由于上下文切换的开销,每个消息使用线程的模型在高消息速率下停止缩放。我告诉他们,上下文切换的成本比调度程序的开销和保存/恢复所有寄存器要多。在上下文切换期间,TLB可能会或可能不会在Intel X64 CPU上完全/部分刷新。这取决于芯片的版本以及OS是否利用了新的TLB标签。有谁知道Windows是否支持这个?在我看来,分支预测器表(我假设在Intel X64上有一个)也可能会刷新。有谁知道这件事吗?我还缺少什么?
如果上下文切换到同一进程中的另一个线程,则不刷新TLB。我猜测分支预测器表也不需要刷新。这是对的吗?