小编las*_*gar的帖子

写入新文件与覆盖:性能问题

我观察到以下两种复制文件的场景之间存在巨大差异:

  1. 将文件复制到新文件中。
  2. 将文件复制到现有文件中并覆盖它。

我预计这两个操作需要相同的时间才能完成。但实际上第一种情况要快得多。我在两个不同的文件系统上尝试了这个,得到了相同的结果。知道为什么第一个场景要快得多吗?

Linux 中的示例:

$ dd bs=1024 count=1000000 if=/dev/zero of=dummyfile.txt
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 7.45639 s, 137 MB/s
$ while [ "1" == "1" ]; do time cp dummyfile.txt dummyfile2.txt ; rm dummyfile2.txt ; done

real    0m0.850s
user    0m0.003s
sys     0m0.847s

real    0m0.778s
user    0m0.000s
sys     0m0.776s

real    0m0.775s
user    0m0.004s
sys     0m0.772s

real    0m0.775s
user    0m0.003s
sys     0m0.770s

real    0m0.776s
user    0m0.008s
sys     0m0.766s
^C
$ rm dummyfile2.txt -f
$ …
Run Code Online (Sandbox Code Playgroud)

linux ssd hard-drive

5
推荐指数
1
解决办法
2203
查看次数

标签 统计

hard-drive ×1

linux ×1

ssd ×1