c++ - 系统调用开销

标签 c++ c linux gcc

C 程序在 Linux 上的 I/O 系统调用开销(大约)有多大,我的意思是运行情况有多糟糕,例如与大型缓冲区(在常规文件或网络套接字上)上的读/写 相比,许多小的读/写 操作?应用是强多线程的。

最佳答案

在大多数现代机器上,系统调用至少需要 1-2 微秒仅用于系统调用开销,如果它们正在执行任何可能阻塞或休眠的复杂操作,则需要更多时间。预计 IO 至少需要 20 微秒,最多为毫秒级。将此与从用户空间缓冲区读取字节的微小函数调用或宏进行比较,这可能会在纳秒内完成(糟糕的一天可能需要 200 纳秒)。

关于c++ - 系统调用开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8247331/

相关文章:

linux - 如何在不到达那里的情况下从不同的目录运行 Linux shell 命令?

c++ - 如何使用 Libwebp 从 Webp 解码和编码?

c++ - 如何将类实例传递给 LowLevelMouseProc?

c - 在 C 语言中无限猜谜游戏中记分

c - 如何停止正在运行的 pthread 线程?

linux - Bash+Expect 脚本在 crontab 中无法正常运行

c++ - 具有初始化列表的类启动 std::array 成员变量

c++ - Gobby 0.4.12安装报错

python - 在 C 和 Python 之间传递的 C 指针(使用胶囊)为空

linux - 使用带有数值的系统调用有什么意义?