为何反复覆盖某文件远比新建文件快?

大多数write应该是被cache掉了。A场景下,因为一直写入同一个文件,所以不需要一直分配新的内存来cache这部分内容。创建新文件时则需要一直分配新的内存来cache这些write操作。因为内存有限,所以当内存不多时,系统会尽量快的把cache内的内容写入磁盘,所以B场景下IO比A高。另外我不知道你用的是什么fs,ext4应该有journal,默认情况下meta data都会写入journal,创建新文件产生的meta data量大于反复写已有文件。


    推荐阅读