首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
2
0
[求助]为什么File mapping比普通文件读写效率高
发表于: 2010-5-28 17:22
6759
[求助]为什么File mapping比普通文件读写效率高
xinshang
2010-5-28 17:22
6759
File Mapping用的是页面文件,直接换入内存。它效率高是因为从硬盘读入内存用的是特殊的方法还是因为文件读写时有一些额外的操作?查了好久,没查到确切的答案。
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!
收藏
・
2
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
8
)
swqswq
雪 币:
324
活跃值:
(57)
能力值:
( LV3,RANK:30 )
在线值:
发帖
11
回帖
72
粉丝
0
关注
私信
swqswq
2
楼
试问:读内存快还是读硬盘快?嘿嘿
2010-5-28 17:23
0
skypismire
雪 币:
75
活跃值:
(883)
能力值:
( LV6,RANK:90 )
在线值:
发帖
95
回帖
706
粉丝
3
关注
私信
skypismire
1
3
楼
第一次打开文件,第一次读写操作(buffered),两者效率上没区别。普通可缓冲读写,还是要通过cachemanager建立filemapping,最后都是通过缺页异常来完成内容的读取写入。
但若是频繁的文件读写操作,filemap这种方法的优势就体现出来了。因为普通可缓冲读写cache的内容有限,而且,cache的内容很容易就被释放。频繁读写的话,它来回捣腾的次数就多了,读取写入硬盘的次数也就多了。
而filemapping就不一样,建立之后,这部分内存空间是不会被释放,最多因为物理页面不够被倒换到交换页面上,读取写入硬盘的次数明显减少。。然后效率就上去了
说错没?后面的人上
2010-5-28 19:09
0
bithaha
雪 币:
1505
能力值:
(RANK:210 )
在线值:
发帖
66
回帖
933
粉丝
4
关注
私信
bithaha
5
4
楼
看怎么用 filemap也不一定比读文件效率高.
2010-5-29 02:31
0
鹿剑
雪 币:
284
活跃值:
(106)
能力值:
( LV9,RANK:160 )
在线值:
发帖
24
回帖
187
粉丝
1
关注
私信
鹿剑
3
5
楼
哪个教材说过File mapping快是读内存比文件快?原因根本就不是这个,MmMapViewOfSection时并不会读文件,只是创建必要的数据结构,这时如果用MmIsAddressValid去测试就会发现返回假了(说明文件根本没读进来),只有你访问到映射进来的某个内存时,产生缺页中断,这时缺页中断才会读一小部分进来,不会很多,就读你读取的那个位置以后的几百字节(数目不确定,估计和操作系统有关),速度当然快了,所以映射几个G的文件和几kb文件速度不差多少,但是都是要去读文件的……
2010-5-29 15:40
0
Aiscanf
雪 币:
202
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
5
回帖
23
粉丝
0
关注
私信
Aiscanf
6
楼
楼上正解......
2010-5-30 20:13
0
第八个门
雪 币:
178
活跃值:
(10)
能力值:
( LV5,RANK:60 )
在线值:
发帖
6
回帖
90
粉丝
0
关注
私信
第八个门
1
7
楼
MmIsAddressValid是测试不到应用层无效地址的。
也测试不到分页内存的。
MmMapViewOfSection似乎也只能映射到用户态。
2010-5-31 09:53
0
comealong
雪 币:
334
活跃值:
(93)
能力值:
( LV3,RANK:30 )
在线值:
发帖
21
回帖
137
粉丝
0
关注
私信
comealong
8
楼
效率高低其实不一定,起码相差不会很大, readfile 其实也把文件的内容加载到了cache中, 用的与文件映射相同的机制
2010-5-31 13:24
0
reduta
雪 币:
273
活跃值:
(64)
能力值:
( LV12,RANK:210 )
在线值:
发帖
17
回帖
117
粉丝
0
关注
私信
reduta
4
9
楼
要是单纯的操作某一部分,我觉得用那I/O操作快一些,如果要写入大量的东西,比如添加一个节,用FILEMAP快点吧
2010-6-2 17:20
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
xinshang
7
发帖
16
回帖
10
RANK
关注
私信
他的文章
[求助]为什么File mapping比普通文件读写效率高
6760
[求助]线程同步
4818
[求助]Sleep函数
4445
[求助]钩子的回调函数在哪个进程中执行?
6041
[求助]exe运行时,整个文件都加载到内存里吗?
7748
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
非常支持你的观点!
这个讨论对我很有帮助,谢谢!
感谢你分享这么好的资源!
谢谢你的细致分析,受益匪浅!
感谢你的积极参与,期待更多精彩内容!
感谢你的贡献,论坛因你而更加精彩!
你的分享对大家帮助很大,非常感谢!
期待更多优质内容的分享,论坛有你更精彩!
你的帖子非常有用,感谢分享!
请遵守论坛规则,避免发布广告内容!
请注意发帖规范,保持良好的讨论环境!
为你点赞!
返回
顶部
账号登录
验证码登录
×
登 录
微信一键登录
获取验证码
登 录
忘记密码?
没有账号?立即免费注册
使用以下账号登录
我已同意
《看雪服务条款》
《看雪课程免责声明》
《看雪隐私政策》
×
求助问答申诉
举报此帖
×
申请推荐此帖
×
×
Close
游客下载提示
×
1.请先关注公众号。
2.点击菜单"更多"。
3.选择获取下载码。