История изменений
Исправление CrX, (текущая версия) :
Мне вот стало интересно - а что в контексте архивации в принципе можно распараллелить? Начать жать разные файлы в разных потоках, и потом по мере завершения конкатенировать?
Ну да.
Не факт что будет быстрее, по крайней мере я с ходу могу придумать контр-примеры когда будет хуже.
На практике будет. Просто сравни сжатие тем же zstd или 7z (lzma2) в один поток и по количеству ядер. Получается быстрее почти во столько раз, сколько ядер использовано.
upd: Ну может с «почти во столько же раз» я немного погорячился, тем не менее:
% time zstd -19 -T1 books-fb2.tar
books-fb2.tar : 64.99% ( 653 MiB => 425 MiB, books-fb2.tar.zst)
zstd -19 -T1 books-fb2.tar 190.78s user 2.32s system 99% cpu 3:14.92 total
% time zstd -19 -T4 books-fb2.tar
books-fb2.tar : 64.99% ( 653 MiB => 425 MiB, books-fb2.tar.zst)
zstd -19 -T4 books-fb2.tar 240.15s user 1.96s system 340% cpu 1:11.06 total
Исходная версия CrX, :
Мне вот стало интересно - а что в контексте архивации в принципе можно распараллелить? Начать жать разные файлы в разных потоках, и потом по мере завершения конкатенировать?
Ну да.
Не факт что будет быстрее, по крайней мере я с ходу могу придумать контр-примеры когда будет хуже.
На практике будет. Просто сравни сжатие тем же zstd или 7z (lzma2) в один поток и по количеству ядер. Получается быстрее почти во столько раз, сколько ядер использовано.