Unix系统调用开销

时间:2014-03-29 14:36:54

标签: c linux performance macos

关于在Linux上进行简单的非阻塞系统调用需要多少个时钟周期?

我期望与OS X有什么不同吗?

我想知道setsockopt之类的调用,可能会用来提供可选提示以提高性能,但却有其固有的成本。

1 个答案:

答案 0 :(得分:3)

这实际上取决于系统调用和硬件。

进行系统调用的开销不是很大! this给出不到一微秒(即一百个处理器时钟周期)。一些系统调用正在使用vdso(7)来减少开销。

但是,对于给定的系统调用,内核正在做一些工作。根据实际涉及的系统调用,这可能需要很长时间。

对于setsockopt(2),它应取决于您要设置的选项。

通常,Linux套接字实现非常好,大部分时间都花在实际网络上(即以太网等)。