进程读写数据时除了使用read和write,还可以使用mmap进行文件映射,区别如下图所示:可以看到,磁盘文件加载到内存后,还需要执行一次拷贝操作。如果使用mmap,则是磁盘文件直接加载到用户空间,也就是上图中深黄色部分,进程可以通过指针直接操作文件。这里提供一个小方法,对文件每一页读取一下首字节:程序两次读文件时间略有偏差,是因为cpu与内存本身的电气特性。
进程读写数据时除了使用read和write,还可以使用mmap进行文件映射,区别如下图所示:可以看到,磁盘文件加载到内存后,还需要执行一次拷贝操作。如果使用mmap,则是磁盘文件直接加载到用户空间,也就是上图中深黄色部分,进程可以通过指针直接操作文件。这里提供一个小方法,对文件每一页读取一下首字节:程序两次读文件时间略有偏差,是因为cpu与内存本身的电气特性。