LINUX.ORG.RU

История изменений

Исправление 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) в один поток и по количеству ядер. Получается быстрее почти во столько раз, сколько ядер использовано.