返回信息流RT
需要在Windows下快速写文件,速度至少需要120M/s,文件大小最大超过2个T。
当前条件:
ntfs格式固态硬盘
64位系统
单位大小为4M的块,组成队列循环使用
目前采用内存映射的方法,将块组合成64M后一次写入,速度暂时可以跟上。
但有一个问题,使用CreateFileMapping一旦文件大小的高字节不为0,即创建大小超过4G时,就会报错,创建失败。
不知道哪位大大知道原因,或者能有其他的解决办法。
这是一条镜像帖。来源:北邮人论坛 / cpp / #87420同步于 2015/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
加班中,急~windows下如何快速写大文件(2T+120M/s)
elf36212889
2015/6/6镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
那啥,结贴!
FILE形式的写入速度就够了,CFile慢点,但是也够,关键在于:
一定要用固态硬盘!
楼主就是写错地方了,写到机械硬盘了,结果FILE写入一般15ms,一旦文件超过3个G,就慢下来,变成100ms+,换到固态硬盘后,写入时间显示是0ms,计算时间的定时器精度是1ms的。
另外说一下,写入时将多个块组合成大块写入可以有效提升效果,然后文件映射方法也可以提高效果(估计也是相当于写入大块文件),但是由于映射存在4G大小的限制,当文件大于4G时会很麻烦。