3

我很好奇在 Linux 中改变上下文需要多少个周期。我专门使用 E5405 Xeon (x64),但我也很想看看它与其他平台的比较。

4

3 回答 3

7

有一个名为 LMBench 的免费应用程序,由 Larry McVoy 和朋友编写。它提供了一堆操作系统和硬件基准测试,其中一个测试称为 lat_ctx,它测量上下文切换延迟。谷歌 lmbench 并在您自己的硬件上检查自己。这是获得对您有意义的数字的唯一方法。

吉拉德

于 2009-02-05T21:37:13.080 回答
3

在你的机器上运行vmstat,同时做一些需要大量上下文切换的事情。它不会告诉您实际切换需要多长时间,但会告诉您每秒执行多少次切换。

然后,与切换上下文相比,您必须估计每个时间片在执行实际代码上花费了多少。也许是 100:1 之类的?我不知道。1000:1?

我的一台机器现在每秒大约进行 3000 次切换,即每个时间片 0.3 毫秒。100:1 的比率意味着实际切换需要 0.003 毫秒。

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

于 2009-02-04T22:43:04.853 回答
-1

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

这表明可以在不超过 2.5 微秒内进行上下文切换,而实际的上下文切换可能花费的时间可能会少一些。

于 2009-02-04T22:48:31.470 回答