CreateFile的FILE_FLAG_NO_BUFFERING 问题
来源:互联网 发布:人工智能 人类 奴隶 编辑:程序博客网 时间:2024/05/17 08:43
最近在写数据恢复的软件,同时要对24块硬盘的数据进行操作,然后写入一个16T 的存储中。
由于在平常的时候没有考虑到系统缓存的问题,只知道 我每次 重复跑数据的时候 往往第二次的比第一次的快上好多。
情况 就这么发生了。服务器的内存是16G,由于数据量太大了,执行完一个任务要好几天。不知不觉中发现系统内存爆满了,查找了所有存在的进程检查其占用的内存 没哟发现有异常的。当时 认为有可能是系统做的优化,毕竟大数据量的拷贝,系统会做出点什么吧!
昨天的时候Leader发截图给我,说WinHex跑数据的状况,内存没有变化,维持在一定的水平。就这么想挖想,什么不可能的,或者根本不存在的假设也有试了一遍。比如 容器中是不是 该存指针而不是对象;再循环中使用引用 系统是不是还要去计数啥的。最后采取 落实缓存的问题。随后发现在CreateFile的时候 有个标志是FILE_FLAG_NO_BUFFERING。一般情况下 都是设置为0,平时也不在意。
现在发现了,有点意思。它这个缓存 等程序结束的时候也不是放。由缓存引起的程序爆满,也不会造成系统的崩溃,系统是有优化的吧。至少目前没有出现过奔溃的状况
不知道是不是我火星了?还是一般情况下 大家都不注意
由于在平常的时候没有考虑到系统缓存的问题,只知道 我每次 重复跑数据的时候 往往第二次的比第一次的快上好多。
情况 就这么发生了。服务器的内存是16G,由于数据量太大了,执行完一个任务要好几天。不知不觉中发现系统内存爆满了,查找了所有存在的进程检查其占用的内存 没哟发现有异常的。当时 认为有可能是系统做的优化,毕竟大数据量的拷贝,系统会做出点什么吧!
昨天的时候Leader发截图给我,说WinHex跑数据的状况,内存没有变化,维持在一定的水平。就这么想挖想,什么不可能的,或者根本不存在的假设也有试了一遍。比如 容器中是不是 该存指针而不是对象;再循环中使用引用 系统是不是还要去计数啥的。最后采取 落实缓存的问题。随后发现在CreateFile的时候 有个标志是FILE_FLAG_NO_BUFFERING。一般情况下 都是设置为0,平时也不在意。
现在发现了,有点意思。它这个缓存 等程序结束的时候也不是放。由缓存引起的程序爆满,也不会造成系统的崩溃,系统是有优化的吧。至少目前没有出现过奔溃的状况
不知道是不是我火星了?还是一般情况下 大家都不注意
- CreateFile的FILE_FLAG_NO_BUFFERING 问题
- FILE_FLAG_WRITE_THROUGH 和 FILE_FLAG_NO_BUFFERING的区别
- error:CreateFile()函数使用了FILE_FLAG_NO_BUFFERING后就不能使用SetFilePointer了
- CreateDirectory、CreateFile创建目录及文件时的权限问题
- CreateFile 的使用
- createfile失败的原因
- CreateFile
- CreateFile
- CreateFile*****
- CreateFile
- createFile
- CreateFile
- CreateFile
- createfile
- CreateFile
- CreateFile
- CreateFile()
- FileCreate 与 CreateFile的区别
- iphone在使用tabbar时如何使用转换动画
- 汉诺塔
- 设计模式--观察者模式--UML
- suse 11下结合gitolite 配置git web
- IOS中的MVC设计模式理解
- CreateFile的FILE_FLAG_NO_BUFFERING 问题
- Win 32 多线程程序设计学习笔记之三:*WaitFor*Object函数
- TQ2440裸板---adc模数转换(详细注释)
- 快速排序算法---20世纪十大算法之一
- 手工设置Windows服务依赖关系
- iOS笔记:自带TableCell中imageView和textLabel位置调整(layoutSubviews)
- MFC 处理双击事件时屏蔽掉单击事件
- code inspector
- Dima and Trap Graph ------codeforces #214 div.2