我也是这个思路,不但减少了碎片化,而且文件创建时分配磁盘空间后,循环覆盖写入的过程中不再申请磁盘空间,此时的存储时耗就只是数据写入磁盘IO的耗时了,没有了磁盘分配空间的时耗。
但还有一点不确定的是:一次新的覆盖写入是从文件起始位置write,在这个过程中系统会不会自动把文件大小清零或者随着文件的修改而变化?如果这样的话,岂不是又相当于在写入过程中重新分配磁盘空间么。
对于windows系统,预分配文件的创建以及写入接口是哪个呀?
【 在 jimmycmh 的大作中提到: 】
: 不要删除文件,而是复用旧文件覆盖写(比如用大家提到的mmap)
: 这样当磁盘写满一遍之后,就不会再有磁盘的删除和分配,也就没有碎片了
: 当然应用层需要做些事情,比如记录文件实际大小
: ...................
--
FROM 218.28.15.*