我有一些tar.gz文件,在CentOS系统上总共有很多千兆字节。大多数tar.gz文件实际上都很小,但是有图像的文件却很大。一个是7.7G,另一个是4G,一对大约是1G。
我已经解压缩了文件一次,现在我想要第二份所有这些文件。
我以为复制未打包的文件比重新打包要快。但是我大约10分钟前就开始运行cp -R,到目前为止还不到5亿拷贝。我确信拆装过程会更快。
我说的对吗?
如果是,为什么?拆装比简单地重复现有的结构更快似乎是没有道理的。
发布于 2012-10-18 13:18:33
考虑以下两种情况:
如果您的CPU没有被解压缩过程征税,那么I/O操作就会受到限制。通过这个参数(而且由于在这两种情况下都必须编写相同的数量),读取较小的文件( tar.gz)比读取更大的文件花费更少的时间。另外,由于读取单个文件比读取许多小文件更快,所以节省了时间。
节省的时间取决于读取(I/O)和解压缩(CPU)所用时间的不同。因此,对于最小可压缩的文件(例如,已经压缩的文件,如mp3、jpg、zip等),其中解压缩所需的时间很可能大于在读取操作中节省的时间,实际上解压缩比复制要慢。
(值得注意的是,I/O越慢,使用压缩文件所节省的时间就越多--如果复制操作的源和目标位于同一个物理磁盘上,就会节省更多的时间。)
发布于 2012-10-18 13:12:57
读取一个非常小的文件比读取一堆大文件要快得多。这通常是正确的,即使CPU必须解压缩它。
https://serverfault.com/questions/439998
复制相似问题