Общие вопросы > Программное обеспечение Linux

Алгоритмы сжатия/распаковки

<< < (2/22) > >>

krasnyh:

--- Цитата: Ильфат от 20 Январь 2019, 21:37:56 ---Он не призван жать также хорошо как xz, скорее он призван при относительно хорошем сжатии быстро распаковывать.
--- Конец цитаты ---

--- Код ---
% du -h skype_XZ.tar.xz && du -h skype_ZSTD.tar.xz
71M skype_XZ.tar.xz
76M skype_ZSTD.tar.xz
--- Конец кода ---

--- Цитата ---% xz -d -c -T 0 skype_XZ.tar.xz > skype_XZ.tar
xz -d -c -T 0 skype_XZ.tar.xz > skype_XZ.tar  6,21s user 0,41s system 99% cpu 6,653 total
--- Конец цитаты ---

--- Цитата ---% time zstdmt -d -c skype_ZSTD.tar.xz > skype_ZSTD.tar
skype_ZSTD.tar.xz   : 239933440 bytes                                         
zstdmt -d -c skype_ZSTD.tar.xz > skype_ZSTD.tar  0,80s user 0,24s system 97% cpu 1,061 total
--- Конец цитаты ---

Цифры конечно безумные у zstd. )

sfs:
Хорошо бы выработать инструкцию в вики - что чем актуально жать

krasnyh:

--- Цитата: krasnyh от 20 Январь 2019, 19:53:00 ---Я тут обратил внимание что у нас в PRA все алгоритмы сжатия/распаковки не используют многопоточность.
--- Конец цитаты ---
У нас при компиляции некоторые действия выполняются в один поток, а именно на последней стадии сжатие в пакет *.tar.xz.
https://wiki.archlinux.org/index.php/Makepkg#Utilizing_multiple_cores_on_compression

В spacefm команды архивации/распаковки тоже без учета количества ядер --> xz -cz %N > %O;  xz -cd %x > %G

Так же gzip и bzip2 не умеют в многопоточность. Для них есть аналоги pigz и pbzip2, но они вроде устаревшие. Хотя pigz рекомендован к применению в ссылке выше (арчвики) как замена gzip.

P.s. Алгоритм xz можно поправить алиасом в .bashrc (.zshrc) --> alias xz='xz -T0'
Правда это не сработает здесь --> tar -cvJf %o %N;  tar -xvJf %x (обработчики архивов из spacefm).

upd. Распараллеливаем процессы для ускорения вычислений и выполнения заданий в Linux

sfs:

--- Цитата: krasnyh от 21 Январь 2019, 16:10:33 ---У нас при компиляции некоторые действия выполняются в один поток
--- Конец цитаты ---
ну так

--- [ Читать далее ] ---
in /etc/makepkg.conf:
COMPRESSXZ=(xz -c -z - --threads=0)
--- Конец цитаты ---
Надо попробовать. Догадываюсь почему там медленно жалось - в одно из 4 ядер

Ильфат:
У вас в PRA какая версия squashfs-tools?
В репах Арча 4.3-8 и умеет zstd.

--- Код ---
zstd
  -Xcompression-level <compression-level>
<compression-level> should be 1 .. 22 (default 15)
--- Конец кода ---
Сжал /usr/share в xz и в zstd чисто посмотреть разницу:

--- Код ---
# du -m usr_share.*
358 usr_share.xz.xzm
399 usr_share.zst.xzm
--- Конец кода ---
Время упаковки:
xz:
real 332,77
user 514,12
sys 43,80
zstd:
real 147,02
user 181,86
sys 11,30
Степени компрессии по умолчанию

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии