为了账号安全,请及时绑定邮箱和手机立即绑定

mmap()与读取块

mmap()与读取块

C++
慕神8447489 2019-10-12 16:07:41
mmap()与读取块我正在开发一个处理文件的程序,该程序的大小可能是100 GB或更大。这些文件包含一组可变长度的记录。我已经启动并运行了第一个实现,并且现在正在寻求提高性能,特别是提高I/O的效率,因为输入文件被扫描了很多次。有什么使用的经验法则吗?mmap()通过C+实现对块的读取fstream图书馆?我想要做的是将大块从磁盘读入缓冲区,从缓冲区处理完整的记录,然后读取更多。这个mmap()代码可能会变得非常混乱,因为mmap代码块需要位于页面大小的边界上(据我理解),记录可能会跨越页面边界。fstreamS,我可以先开始记录,然后再开始阅读,因为我们不局限于阅读位于页面大小边界上的块。我怎样才能在这两个选项之间做出决定,而不首先编写一个完整的实现呢?任何经验法则(例如,mmap()是快2倍)还是简单的测试?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 399 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信