Почему pigz использует меньше процессорного времени, чем gzip, даже при распаковке на одном ядре? - PullRequest
0 голосов
/ 08 ноября 2019

pigz (параллельный gzip) - это замена для gzip, которая сжимает быстрее, потому что использует несколько ядер.

Для декомпрессии, справочная страница утверждает, что обычно это нельзя распараллелить, поэтому pigz просто создает некоторые дополнительные потоки для ввода-вывода, «которые могут ускорить декомпрессию при некоторых обстоятельствах».

Однако даже при отключении параллельной декомпрессии , pigz выглядит быстрее при распаковке, чем обычный gzip:

$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.0.tar.gz
$ time gzip -dc linux-5.0.tar.gz > /dev/null
real    0m3.515s
user    0m3.486s
sys     0m0.028s
$ time pigz -p 1 -dc linux-5.0.tar.gz > /dev/null
real    0m2.351s
user    0m2.334s
sys     0m0.016s

То есть он распаковывает этот конкретный файл за 2,3 секунды, а не за 3,5 секунды (кэши тёплые, вышеприведенное постоянно воспроизводимо).

При работе с огромными файлами это преимущество складывается, поэтому я бы хотел продолжить использовать pigz, но мне интересно, будет ли это стоить пропустить некоторые проверки целостности. (А если нет, то последующий вопрос, конечно, заключается в том, почему сам gzip не использует те же оптимизации.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...