c++ - 快速读取文件

标签 c++ c linux gcc

如果我是对的,在 Linux 上(在 C/C++、gcc/g++ 中),可以使用 read(2)mmap(2) 系统调用。

两个问题。 read 系统调用在内部使用 mmap 吗?什么时候第一个比第二个快,反之亦然?

最佳答案

如果您按顺序读取文件,我的默认选择是重复读取到一个较大的缓冲区。

如果您正在访问散布在一个大文件中的少量数据,选择就不太清楚了,但是 mmap 可能会导致代码更具可读性(因为您可以像文件一样编写代码已经在内存中)。在这种情况下哪个会提供更好的性能很难先验地判断。

如果您正在编写性能关键代码,那么确定性能的唯一方法是对实际代码进行基准测试/分析。

关于c++ - 快速读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8809607/

相关文章:

C++11 构造函数的区别(大括号)

c - 单生产者单消费者无锁队列c

c - 获取进程的 pid,了解其使用的 Linux header 中的结构

linux - 如何从变量(从 MYSQL 查询)中获取行数?

C++ CRT 内存泄漏

c++ - isspace 和 Replace() 的问题

android - 尝试在 Flutter 中调试应用程序时显示此错误

linux - 虚拟机中linux断电后如何保存状态?

c++ - dynamic_cast 中的模板推导

c++ - 如何在 C++ (Linux) 中获得 CPU 时钟速度?