我有一些tar.gz文件,在CentOS系统上总共有几千兆字节。 大部分的tar.gz文件实际上很小,但是有图像的文件很大。 一个是7.7G,另外一个是4G,一个是1G左右。
我已经解压文件一次,现在我想要所有这些文件的第二个副本。
我认为复制解压缩后的文件比重新解压缩文件要快。 但是我大约10分钟前开始运行cp -R,至今还不到500M。 我确信拆包过程更快。
我对吗?
如果是这样,为什么? 拆开包装比单纯复制现有结构要快。
考虑这两种情况:
如果你的CPU没有被解压过程征税,那么I / O操作是有限的。 通过这个说法(既然你必须在这两种情况下写相同的数量),读取一个较小的文件(tar.gz)比读取一个较大的文件花费的时间更less。 由于读取单个文件比读取许多小文件更快,节省时间。
节省的时间取决于读取(I / O)和解压缩(CPU)所花费的时间之间的差异。 因此,对于可压缩程度最低的文件(如已经压缩过的文件,如mp3,jpg,zip等),解压缩所需的时间可能会大于读操作保存的时间,事实上比解压缩要慢。
(值得注意的是,I / O越慢,使用压缩文件的时间就越多 – 如果复制操作的源和目标位于同一个物理磁盘上,则会出现这种情况。
读一个非常小的文件比读一堆大文件要快得多。 即使CPU必须解压缩,这也是正确的。