是否有可能测量 C# 中进程上下文切换的大致时间?如果是,如何?
我根据《Cracking the Coding Interview: 150 Programming Questions and Solutions 》一书提出了这个问题。
他们的解决方案是:
假设只有 2 个进程,P1 和 P2。(是一个巨大的近似值,我相信还有更准确的)
P1 正在执行,P2 正在等待执行。在某些时候,操作系统必须交换 P1 和 P2 - 假设它发生在 P1 的第 N 条指令处。因此,上下文切换时间为:
Time_Stamp(P2_1) - TimeStamp(P2_N)
其中一个问题是我们无法记录过程中每条指令的时间戳。而且我们不考虑其他进程之间的上下文切换所花费的时间。