首页
社区
课程
招聘
[讨论]超过2G文件映射到内存中的处理问题
发表于: 2007-4-17 20:37 7328

[讨论]超过2G文件映射到内存中的处理问题

HSQ 活跃值
8
2007-4-17 20:37
7328
通常为了加快大块文件的处理,我们都习惯CreateFileMapping将起映射到内存中处理.但如果加载的是超过2G文件,而操作系统在保护模式下,每个进程都只有4G平坦地址可用,供程序自身的最多只有2G.假设现在要处理一个10G,的文件,要求一次映射到内存中处理,那地址读取其不会出错

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
2
不会啊。要不提供dwFileOffsetHigh 这个参数来干什么哦 明显是超过0xFFFFFFFF的都还可以处理嘛
不过显然MapViewOfFile 又没有让你一次全部映射。 你读哪一部分映射哪一部分咯。
2007-4-18 00:30
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
3
如果一次映射几百M以上的话,速度会慢的许多
就像楼上说的分块映射吧,搞个循环就行
2007-4-18 12:00
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
4
看来"分块映射"是唯一比较可取的方案了,我原来的意图是无论文件多大,都想一次性映射进内存,再处理其它操作.
2007-4-19 20:34
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那得用AWE,或者PAE,或者。。直接上64位程序
2007-4-23 21:59
0
游客
登录 | 注册 方可回帖
返回
//