我很好奇,它需要多少个周期来改变上下文中的Linux。我专门用E5405至强(x64)的,但我很想看看它是如何比较其他平台以及。

有帮助吗?

解决方案

可以去看一个免费的应用程序称为通过的LMBench拉里·麦沃伊和朋友写的。它提供了一堆OS&HW基准 其中一个测试被称为lat_ctx和它的措施CONTEX开关延迟。 对于谷歌和的LMBench检查自己对自己的硬件。它的唯一的方式得到了一些有意义的给你。

吉拉德

其他提示

运行的vmstat你的机器上,而这样做的东西,需要大量的上下文切换。它不告诉你实际的开关需要多长时间,但它会告诉你,你每秒多少交换机做。

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

我的一个机器现在做每秒大约3000开关,每时间片即0.3毫秒。以100:1的比例,这将意味着实际开关需要0.003毫秒

但是,具有多个核,线程得到执行,等等等等,我难道不从这样的猜测得出任何结论:)

我已经写代码这是能够以每秒200K分组呼应(小)UDP数据包。

这表明,它是可能的上下文切换在不超过2.5微秒,与实际的上下文切换可能采取比稍差。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top