繁体   English   中英

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

[英]How long does a context switch take in Linux?

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

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

吉拉德

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM