首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
使用mmap读写文件为什么比普通读写函数要快?
[问答题]
使用mmap读写文件为什么比普通读写函数要快?
添加笔记
求解答(0)
邀请回答
收藏(122)
分享
纠错
5个回答
添加回答
2
万QQ
mmap函数是把文件的某一块内容直接映射到用户空间上,用户可以直接读写这一块内容 。
普通读写函数会经历一个内核缓冲过程,多出了数据拷贝的时间
发表于 2015-06-23 10:06:32
回复(0)
1
ChrisNewbie
mmap函数直接将文件内容映射到用户空间,不需要中间的缓冲过程,普通函数需要缓冲和拷贝的过程。
发表于 2015-07-28 11:24:23
回复(0)
1
伟伯
补充:
mmap内存映射函数,将文件内容-->映射到进程的地址空间,通过对这段内存的读取、修改,来实现度文件的读取、修改,无需调用read、write函数。
mmap特点是不能改变文件长度,无法写入多余的字符。
发表于 2015-07-26 01:00:25
回复(0)
1
老衲很淡定
mmap函数是
把文件的某一块内容直接映射到用户空间上,
用户可以直接读写这一块内容
。
普通读写函数会经历一个内核缓冲过程,多出了数据拷贝的时间。
PS:
1.无论是Unix I/O还是标准I/O库函数,它们都是通过read,write等底层系统调用实现的,而read,write都会使用内核进行缓冲。
2.我们常说的术语
“不带缓冲的I/O”指的是在用户进程空间(区别于内核进程空间)中对这两个函数不会自动缓冲
。
发表于 2015-06-15 23:50:56
回复(0)
0
陈木木
mmap函数:可以将文件映射到内存中的⼀一段区域,普通函数读写文件:用户空间buffer内 核空间buffer磁盘;mmap映射之后:用户空间buffer进程内存空间,省掉了拷贝到内核空间 的时间?
发表于 2015-05-05 14:48:55
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Linux
上传者:
陈木木
难度:
5条回答
122收藏
15454浏览
热门推荐
相关试题
关于Linux系统的负载(Load...
阿里巴巴
Linux
评论
(45)
编程题 ,按照要求创建Java 应...
Java
评论
(1)
计算机系统中用于管理硬件和软件资源...
编程基础
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
说出3个获取用户需求的方法并简述其...
用户研究
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题