我需要在一个大的文件(例如1GB以上)中频繁插入和删除一段,插入和删除位置不确定。请问对系统有什么影响,是不是系统IO会严重变慢。有什么方式可以优化这种操作?
解决方案 »
- 关于CEdit控件设置的问题??
- 如何设置dialog的style为child
- 请详细说下 窗口最大化,最小化时,一般大小时,需要那些步骤和调用那些函数?
- AVI色彩深度转换的问题
- 老大们,请看清: 怎么对一个已存在的lnk文件(d:\test\temp.lnk)设置它的快捷方式,而不是去创建一个lnk文件.
- 创建一个splitter窗口,可以让splitter不动吗?
- 轻松捡分:到哪里可以找到VCL.H文件?
- 如何动态改变CListCtrl的图标?
- 大大大....调查:来者有分,我在CSDN 也是很讲信誉的。 你认为一个有两年工作经验的程序员(特别是深圳)应该拿多少工资,看看我们拿的是不是少了很多???
- 怎样把select()模型改成异步模式的
- 树控件 复选框问题
- DLL sendMessage 给EXE
如果如你所说,那我初始化一个大文件,不做插入和删除操作(想办法用算法避免)。只做更新操作,改变中间某一段文件,但文件大小不变,是不是就不会有产生碎片问题呢?
另外你提到的数据库的做法是什么样的,哪里可以找到相关参考?谢谢
只做更新操作,改变中间某一段文件,我觉得如果大文件是连续的,想法很不错。有一本叫《数据库系统实现》的书讲到了磁盘,你找找看。
但现在又觉得帮助不大,因为你的文件是在文件系统(FAT,NTFS)上的,不能自己管理磁盘。可能能参考是数据预取,命中等等。
解决方法是把大文件拆成多个小文件,或者把文件改用数据库代替。
还是交给数据库吧,你只需要sql就行