Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Zstandard | zstd

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12

Открыть новую тему     Написать ответ в эту тему

Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Zstandard — алгоритм сжатия данных без потерь, разрабатываемый с 2015 года Яном Колле (фр. Yann Collet) при поддержке Facebook'а; zstd — эталонная реализация алгоритма Zstandard на языке программирования Си под свободной лицензией BSD. Версия 1.0 алгоритма и реализации были представлены в конце августа 2016 года[5][6].  
 
Сочетает словарный алгоритм сжатия данных типа LZ77 и эффективное энтропийное кодирование типа tANS (FSE — Finite State Entropy), алгоритм, сходный с кодом Хаффмана, реализующий нецелое количество бит для хранения символов[7][8].  
 

 
GitHub - https://facebook.github.io/zstd  
Release v1.5.6 - https://github.com/facebook/zstd/releases/tag/v1.5.6
Total Commander plugin - http://franke.ms/download/wcx_zstd_1_1_3_5.zip
https://github.com/facebook/zstd/blob/dev/programs/zstd.1.md
https://manpages.ubuntu.com/manpages/focal/en/man1/zstd.1.html

Всего записей: 690 | Зарегистр. 12-09-2017 | Отправлено: 20:25 25-05-2020 | Исправлено: lelik007, 23:00 30-03-2024
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007
Цитата:
До Gold надо еще Brotli начать тестировать
Этот "в-рот-ли" есть в виде плагина к 7zip. Тоже извращения в гражданский контейнер (в его случае - 7z) заворачивают.
 
Добавлено:
Для теста взял два файла
chrome.dll от UngoogledChromium win64 109.0.5414.120-1
vivaldi.dll от 5.7.2921.3 win32 snapshit
 
Упаковал вот так (оба х64)
7z.exe  a -mx=9 -mmt=2 -myx=9 -mqs -mfb=273 -md=128M -slp
zstd.exe --format=zstd --ultra -22 --long=31
 
Результат:
chrome.dll        204 126 208
chrome.7z          58 288 499
chrome.dll.zst     69 440 659
vivaldi.dll       172 282 216
vivaldi.7z         51 789 844
vivaldi.dll.zst    61 252 844

При этом 7zip работает быстрее и меньше расход памяти.

Всего записей: 17956 | Зарегистр. 04-11-2010 | Отправлено: 00:46 06-02-2023 | Исправлено: insorg, 01:08 06-02-2023
lelik007



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg

Цитата:
7z.exe  a -mx=9 -mmt=2 -myx=9 -mqs -mfb=273 -md=128M -slp

-mx=9 - тоже самое что -mx
-myx=9 - тоже самое что -myx
(это в справке написано, не сам придумал)
 
-mfb=273 - я пробовал увеличивать размер слова, вот и вчера тоже
разница с -mfb=64 (по умолчанию) - разница около 4 м 40 с вместо 3 м 30 с,
а профит - порядка 0.3 Мб меньше на выходе.
Я тестировал в свое время размер слова, время прибавляет сильно, а выхлоп ни о чем.
Для макс. сжатия можно и выкрутить.
 
Конечно, у меня словарь 512 Мб, так 7-zip всю память кушает, я еще memuse=p90 поставил.
---
Насчет zstd.exe - я почитал вчера что после --long=31 написано
zstd.exe --ultra -22 --long=31 --zstd=hlog=30,clog=30,slog=29,tlen=9999
Ну это такие продвинутые опции, я никогда в такое ни в 7-zip, ни в Winrar не лазил,
а чувствую профит такой же будет как в 7-zip от размера слова.
 
Правда есть у меня идея одна по поводу zstd.exe - нужно дополнительно протестировать.

Всего записей: 3101 | Зарегистр. 13-10-2006 | Отправлено: 09:21 06-02-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007

Цитата:
До Gold надо еще Brotli начать тестировать.

*.tbr он же *.tar.br подкинуть?

Всего записей: 7732 | Зарегистр. 08-09-2001 | Отправлено: 10:49 06-02-2023
lelik007



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Оно то конечно Silver и Brotli интересно, но и борода скоро отрастет.
Поставлю настоящий Linux, не WSL какой то, буду кубатурить.

 
А вот что у меня пока с zstd получилось:
Файл тот же: ndp481-x86-x64-allos-enu.tar
zstd.exe --long=31 --ultra -22
время 3.30 размер 67.2 М  - память до 1.9 Gb
 
zstd.exe --long=31 --ultra -22 --zstd=clog=29,hlog=29,slog=29,mml=3,tlen=128,strat=9
время 2.25 размер 66.8 М  - память до 5 Gb
 
Для команды с макс. значениями -
zstd.exe --long=31 --ultra -22 --zstd=clog=30,hlog=30,slog=29,mml=3,tlen=128,strat=9
просто памяти не хватает

Всего записей: 3101 | Зарегистр. 13-10-2006 | Отправлено: 11:09 06-02-2023 | Исправлено: lelik007, 11:11 06-02-2023
GoblinNN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007

Цитата:
Поставлю настоящий Linux

ставь арч. там все пакеты zstd. короче их там много.

Всего записей: 2912 | Зарегистр. 11-10-2005 | Отправлено: 11:49 06-02-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007

Цитата:
Для команды с макс. значениями -  

В моем случае разница не так уж и велика.
zstd --long=31 --ultra -22 ndp481-x86-x64-allos-enu.tar
ndp481-x86-x64-allos-enu.tar : 10.12%   (704999424 => 71327460 bytes, ndp481-x86-x64-allos-enu.tar.zst)
и
zstd --long=31 --ultra -22 --zstd=clog=30,hlog=30,slog=29,mml=3,tlen=128,strat=9 ndp481-x86-x64-allos-enu.tar
ndp481-x86-x64-allos-enu.tar : 10.04%   (704999424 => 70794072 bytes, ndp481-x86-x64-allos-enu.tar.zst)
 
Кстати если zstd собираете сами то в папке contrib есть pzstd
https://github.com/facebook/zstd/tree/dev/contrib/pzstd

Всего записей: 7732 | Зарегистр. 08-09-2001 | Отправлено: 12:50 06-02-2023 | Исправлено: los, 12:51 06-02-2023
lelik007



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GoblinNN
Да то я шутю, хотя конечно документация у Арча и пакетная база - самый топ.
los
А там во времени большая разница за счет использования памяти. Это видно, а вот по размеру,
я не думаю, что этими опциями можно более мегабайта в данному случае туда-сюда выжать.

Всего записей: 3101 | Зарегистр. 13-10-2006 | Отправлено: 13:02 06-02-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007

Цитата:
А там во времени большая разница за счет использования памяти.

time zstd --long=31 --ultra -22 ndp481-x86-x64-allos-enu.tar
146.82s
time zstd --long=31 --ultra -22 --zstd=clog=30,hlog=30,slog=29,mml=3,tlen=128,strat=9 ndp481-x86-x64-allos-enu.tar
96.74s
 
Надо будет собрать zstd поновее, может результаты по времени и сжатию будут отличаться.

Всего записей: 7732 | Зарегистр. 08-09-2001 | Отправлено: 13:28 06-02-2023
lelik007



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
У меня тоже самое, на треть меньше времени, причем вначале время идет как обычно,
а в конце просто летит. Это он вначале ищет совпадения (анализирует) - как ... solid-сжатие?
Зато и памяти - у меня ~ 2 Gb  vs 5 Gb.

Всего записей: 3101 | Зарегистр. 13-10-2006 | Отправлено: 13:53 06-02-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007
Цитата:
-mx=9 - тоже самое что -mx
-myx=9 - тоже самое что -myx
(это в справке написано, не сам придумал)  
Не исключено, но это мне нужно в явном виде, потому что по ситуации циферки могу менять на другие.
Цитата:
Конечно, у меня словарь 512 Мб, так 7-zip всю память кушает, я еще memuse=p90 поставил.  
Этот memuse больше вреден, чем полезен, поскольку режет этот самый словарь и страдает сжатие. Либо раму наращивай, либо словари используй такие, при которых хватит наличествующей.

Всего записей: 17956 | Зарегистр. 04-11-2010 | Отправлено: 18:51 06-02-2023
metatrop

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Смысл формата Zstd - очень быстрая распаковка; быстрее, чем ZIP. Zstd - объективно полезный метод сжатия, а не бесполезный, как, скажем, RAR5 (хотя контейнер RAR5 - совсем другое дело, он даёт уникальное на данный момент сочетание возможностей).
 
Например, торренты FB2 библиотек Либрусек и Флибуста сократились бы в размере на многие десятки Гигабайт, будь они упакованы не в zip, а в zstd (без solid или, самое лучшее, solid с ограничением на размер блока в несколько мегабайт). Все остальные алгоритмы с сопоставимым сжатием хуже по скорости распаковки, которая должна быть максимально быстрой, иначе большие книги могут открываться где-то с раздражающей задержкой. Алгоритм PPMd (FreeArc, RAR3/4, 7zip с малоизвестными опциями) вообще сразу отпадает - слишком медленный при распаковке, хотя и сжимает тексты лучше всех. На текстах zstd лишь немногим уступает 7zip (к примеру, 6468272 vs 6426806 байт).

Всего записей: 327 | Зарегистр. 17-09-2010 | Отправлено: 20:06 06-02-2023
neorion

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GoblinNN

Цитата:
у него упор не на винду

Да, все линуксовые пакеты теперь на нем. deb, rpm, арчевские.
Так что как минимум распаковывать бывает надо. Особенно жесть, когда внутри deb этот zst запихнули, как в новых убунтах.
 
lelik007

Цитата:
Она же реально линуксовая

Ага, инструкция доступна по man zstd.

Всего записей: 448 | Зарегистр. 02-10-2022 | Отправлено: 20:09 06-02-2023 | Исправлено: neorion, 20:19 06-02-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
metatrop
Цитата:
торренты FB2 библиотек Либрусек и Флибуста сократились бы в размере на многие десятки Гигабайт, будь они упакованы не в zip, а в zstd  
А будь они в 7zip или RAR4 (с опцией для текста на основе PPMD), то и того лучше. Очевидно же.
Цитата:
иначе большие книги могут открываться где-то с раздражающей задержкой
Насколько "большие" должны начать раздражать? Если это именно книги (текст), то они априори даже в самой жирной кодировке, даже если "автора понесло", не будут больше нескольких МБ. Распаковать несколько МБ за время меньше 1-2 секунды (для открытия книги допустимо, учитывая ещё время дальнейшего парсинга html/fb2/epub) не составляет никакой проблемы.
Даже 10-20 МБ, что уже можно считать как много, на мобилке тоже вполне себе ворочаются из RAR и 7z архивов на сопоставимой с zip скоростью даже на китайце из 2017 года с не самым свежим на момент выпуска процем.
 
Добавлено:
Да и основная проблема zstd - не его свойства или скорость работы (лдя них тоже можно найти оптимальный сценарий работы), а то, что его суют в те контейнеры, где он определённо быть не должен и адекватным человеком там не ожидается - то бишь 7z и zip.

Всего записей: 17956 | Зарегистр. 04-11-2010 | Отправлено: 20:25 06-02-2023
GoblinNN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg

Цитата:
А будь они в 7zip или RAR4 (с опцией для текста на основе PPMD), то и того лучше. Очевидно же.

а скорость? вы считаете в штуках 1-10. посчитайте в тысячах.

Всего записей: 2912 | Зарегистр. 11-10-2005 | Отправлено: 07:38 08-02-2023 | Исправлено: GoblinNN, 07:58 08-02-2023
lelik007



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg

Цитата:
Этот memuse больше вреден, чем полезен, поскольку режет этот самый словарь и страдает сжатие. Либо раму наращивай, либо словари используй такие, при которых хватит наличествующей.

 
Вы я смотрю 7z.exe больше используете, а я так 7zG.exe - он не даст выставить больший словарь, чем памяти выделено на момент упаковки, я, например могу только 512 Мб в 2 потока, 384 Мб в 3 потока, 256 Мб в 4 потока. Конечно я такие словари ставлю, что на них памяти хватит в любом случае.
memuse  - очередная защита от дурака, чтобы систему не повесил поставив не ту опцию. Или если при упаковке что то запустит, кто то. По умолчанию он 80% в GUI, опция словарь не режет, а динамически уменьшает кол-во потоков, чтобы освободить память, как я понимаю. Хотя мне и без нее нормально было
 
neorion
Синтаксис как у Линукс программы, я имел это ввиду.
 
los
Если будет время и желание, хотел бы попросить, можете тот же файл прогнать с секундомером и выложить результаты с опциями:
 
zstd --long=31 --ultra -22 --zstd=clog=30,hlog=30,slog=29,mml=7,tlen=128,strat=9 ndp481-x86-x64-allos-enu.tar
 
zstd --long=31 --ultra -22 --zstd=clog=30,hlog=30,slog=29,mml=3,tlen=32,strat=9 ndp481-x86-x64-allos-enu.tar
 
Просто сейчас не на той же машине где тесты проводил, постоянства результатов не будет. Хочется влияние последних опций на скорость и размер посмотреть.
 
Добавлено:
metatrop
Смотря с какими опциями быстрая, а с какими обычная. У вас какие опции упаковки? В man конкретно написано, какие опции сильно влияют на скорость, размер, но при этом страдает скорость распаковки.
 
Где вы Solid сжатие нашли у него? Во всем man такого слова нет. Можете дать пример команды, как вы считаетt Solid с ограничением на размер блока и без оного? Я с ним который день сижу, не могу понять, где Solid, где не Solid.
 
А чем RAR 5 такой бесполезный - то что сжимает на 200-250% быстрее, при этом конечно сжатие страдает до 15-20%? Так Евгений так его таким и задумывал, он неоднократно в профильной теме это объяснял.

Всего записей: 3101 | Зарегистр. 13-10-2006 | Отправлено: 15:09 08-02-2023 | Исправлено: lelik007, 15:28 08-02-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007, так может с hyperfine прогнать для наглядности?

Всего записей: 7732 | Зарегистр. 08-09-2001 | Отправлено: 15:34 08-02-2023 | Исправлено: los, 15:34 08-02-2023
lelik007



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Было бы хорошо, только если у меня то чуть позже.

Всего записей: 3101 | Зарегистр. 13-10-2006 | Отправлено: 16:34 08-02-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007, машина тоже другая(слабее)
time zstd --long=31 --ultra -22 --zstd=clog=30,hlog=30,slog=29,mml=3,tlen=128,strat=9 ndp481-x86-x64-allos-enu.tar
ndp481-x86-x64-allos-enu.tar : 10.04%   (704999424 => 70796092 bytes, ndp481-x86-x64-allos-enu.tar.zst)
2:24.54
 
time zstd --long=31 --ultra -22 --zstd=clog=30,hlog=30,slog=29,mml=7,tlen=128,strat=9 ndp481-x86-x64-allos-enu.tar
ndp481-x86-x64-allos-enu.tar : 10.85%   (704999424 => 76515502 bytes, ndp481-x86-x64-allos-enu.tar.zst)
6:31.76
 
time zstd --long=31 --ultra -22 --zstd=clog=30,hlog=30,slog=29,mml=3,tlen=32,strat=9 ndp481-x86-x64-allos-enu.tar
ndp481-x86-x64-allos-enu.tar : 10.09%   (704999424 => 71125507 bytes, ndp481-x86-x64-allos-enu.tar.zst)
2:41.61
 
 

Всего записей: 7732 | Зарегистр. 08-09-2001 | Отправлено: 17:06 08-02-2023 | Исправлено: los, 17:24 08-02-2023
lelik007



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Все сраньше и страньше.
 
На 30 clog, hlog по прежнему не могу - памяти не хватит. Ну я же изначально с 29 тестировал.
 
А у меня вот так получается, 2 раза с перезагрузкой проверил.
 
time zstd --long=31 --ultra -22 --zstd=clog=29,hlog=29,slog=29,mml=7,tlen=128,strat=9 ndp481-x86-x64-allos-enu.tar время 1.40! размер 72 М

Всего записей: 3101 | Зарегистр. 13-10-2006 | Отправлено: 17:47 08-02-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lelik007, проверил пару раз +/- пара секунд
time -p zstd --long=31 --ultra -22 --zstd=clog=29,hlog=29,slog=29,mml=7,tlen=128,strat=9 ndp481-x86-x64-allos-enu.tar
ndp481-x86-x64-allos-enu.tar : 10.86%   (704999424 => 76537849 bytes, ndp481-x86-x64-allos-enu.tar.zst)
real 111.28
 
Наверное есть зависимость от версии zstd и от используемой конфигурации компьютера - ОС, память и т.д.

Всего записей: 7732 | Зарегистр. 08-09-2001 | Отправлено: 18:18 08-02-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12

Компьютерный форум Ru.Board » Компьютеры » Программы » Zstandard | zstd


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru