【发布时间】:2013-03-30 18:07:57
【问题描述】:
最初我认为为了让代码更快,最好尝试减少内核和用户空间之间的转换——通过推动更多代码在内核中运行。然而,我在一些类似 SO 的论坛上读到,实际上相反的情况已经完成——更多的代码被推送到用户空间。为什么是这样?这似乎违反直觉?将更多代码放入用户空间仍然需要内核-用户转换,而将代码放入内核并不需要内核-用户转换?
如果有人问-我正在考虑一个处理数据包数据的应用程序。
编辑
所以更多细节,我正在考虑数据包数据何时到达 - 我想重写网络堆栈并删除不适用于我的数据包处理的代码并且零复制 - 将数据包数据放在某个地方用户程序可以尽快访问它。
【问题讨论】:
标签: c linux performance operating-system kernel