【发布时间】:2012-11-22 18:46:40
【问题描述】:
是否有可能测量 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)
其中一个问题是我们无法记录过程中每条指令的时间戳。 而且我们不考虑其他进程之间的上下文切换所花费的时间。
【问题讨论】:
-
当你提出这个解决方案时,你可以放心地假设你不会被录用。
-
@HansPassant 我认为你是对的,而且我认为这个问题也不是一个好的面试问题,有点棘手,你需要假设很多与现实相去甚远的事情。
标签: c# .net process operating-system context-switch