上下文切换在Linux中需要多长时间?

时间:2009-02-04 22:30:56

标签: linux performance multithreading low-level

我很好奇在Linux中更改上下文需要多少周期。我特意使用E5405 Xeon(x64),但我也很想看看它与其他平台的对比情况。

3 个答案:

答案 0 :(得分:7)

有一个名叫LMBench的免费应用程序,由Larry McVoy和朋友们编写。它提供了一堆OS&硬件基准测试 其中一个测试称为lat_ctx,它测量上下文切换延迟。 谷歌为lmbench并在你自己的硬件上检查自己。它是让你有意义的唯一方法。

吉拉德

答案 1 :(得分:3)

在执行需要大量上下文切换的操作时,在您的计算机上运行 vmstat 。它并没有告诉你实际开关需要多长时间,但它会告诉你每秒有多少开关。

然后,与切换上下文相比,您必须估计每个时间片执行实际代码所花费的金额。也许是100:1还是什么?我不知道。 1000:1

我的机器现在每秒大约进行3000次切换,即每次切片0.3毫秒。比率为100:1意味着实际开关需要0.003 ms。

但是,有了多个核心,线程产生执行等等,我不会从这样的猜测中得出任何结论:)

答案 2 :(得分:-1)

我编写的代码能够以每秒200k的数据包回送(小)UDP数据包。

这表明上下文切换的时间可能不超过2.5微秒,而实际的上下文切换可能会比这更少。