MMAP文件加速读写小技巧是什么
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,MMAP文件加速读写小技巧是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。进程读写数据时除了使用read和write
千家信息网最后更新 2025年12月01日MMAP文件加速读写小技巧是什么
MMAP文件加速读写小技巧是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
进程读写数据时除了使用read和write,还可以使用mmap进行文件映射,区别如下图所示:
可以看到,磁盘文件加载到内存后,还需要执行一次拷贝操作。
如果使用mmap,则是磁盘文件直接加载到用户空间,也就是上图中深黄色部分,进程可以通过指针直接操作文件。
粗看起来mmap少了一次拷贝,理论上比read要快。但是,调用mmap后并不会真实将文件加载到内存,因此在读写过程中(特别是大文件)会触发大量中断,导致性能降低,就算使用madvise调用加速参数都没有用。这里提供一个小方法,对文件每一页读取一下首字节:
上面的代码我们使用两个数据完全相同8M文件,看看执行预加载和不执行预加载后的表现:
可以看到执行预加载调用速度明显比不执行要快。使用madvise加速有没有效果呢?看一下:
没有效果,还是执行预加载调用速度明显比不执行要快。程序两次读文件时间略有偏差,是因为cpu与内存本身的电气特性。
鲁棒性
当使用mmap进行共享映射时,多个进程可以操作同一文件,典型场景就是使用vim编辑文件,然后使用cat查看文件,如下图:
这个时候就有竞争场景了,进程1和2分别只能看见自己的私有虚拟地址,需要调用者自己实现锁机制,详情可以参考写时拷贝机制。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
文件
进程
内存
拷贝
明显
场景
效果
数据
机制
磁盘
速度
帮助
清楚
相同
上图
两个
也就是
代码
偏差
典型
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
模拟器怎么玩小米服务器游戏
服务器安全狗msdtc
计算机网络技术书推荐
软件开发销售 增值税优惠
c#web定时刷新数据库
软件开发 估算 工具
数据库新技术及其发展趋势
中通吉网络技术有限公司工作
微信人脸识别的数据库来源
软件开发很累么
明日之后官服哪个服务器人比较多
服务器cpu散热片怎么选
重庆管理软件开发报价
广州正品集团软件开发
我的世界服务器管理员的家
上海质量软件开发
计算机网络安全学校网络论文
游戏服务器防护
sql数据库找不到命令
质押挖矿智能合约软件开发
软件开发流程管理的研究背景
杭州构建智慧消防软件开发
汕头管理软件开发供应
邹平人力资源hr软件开发
无界面服务器与qt客户端之间
金融高频数据库
c如何查询数据库
数据库select年龄加一
服务器网卡批量测试
1 x网络安全运维