我想知道我是否可以同时进行大量系统调用,而只有一个开关开销。我需要这个,因为我需要同时进行许多(128)系统调用。如果我可以在不切换内核和用户空间 256 次以上的情况下做到这一点,我认为它可以使我的(速度敏感的)库显着更快。
问问题
596 次
2 回答
8
你真的不能从应用程序中做到这一点。您可以做的是构建一个可加载的内核模块来实现这些操作并提供一个简单的 API——然后您可以更改一次上下文,完成所有工作,然后返回。
然而,与大多数这类优化问题一样,首先要问的是“你为什么认为它是必要的?” 你有时间信息等吗?你有简介吗?你真的有多少性能问题,额外的复杂性是否值得加速?
于 2012-06-16T04:43:20.993 回答
0
我认为 Linux 不会很快支持系统调用链接。您可能会更幸运地在另一个内核上实现它并移植您的应用程序。
也就是说,编写一个代理来为您在内核空间中完成这项工作并不难,但不要指望它会在上游合并。我从事实时工作,我们有这样的解决方案,但由于支持问题从未在生产中使用过:/。
于 2012-06-16T04:59:18.640 回答