не слышал такого. боязно. да и админы не пропустят, думаю
xz и lzma - это утилиты, реализующие тот же алгоритм сжатия, который используется в 7zip. Плюсы: очень хорошо жмёт. Минусы: жмёт медленно и при этом требует много памяти. Распаковка в принципе достаточно быстрая, но расход памяти тоже зависит от степени сжатия (хоть памяти потребляется и меньше, чем при сжатии).
ИМХО лучший вариант: прогнать все доступные запаковщики/распаковщики на тестовых образцах тех данных, которые нужно жать, а потом выбрать тот вариант, который лучше всего подойдёт по коэффициенту сжатия, скорости работы и потреблению ресурсов.
Если ядер много, то я выберу bzip2 в распараллеленном исполнении — pbzip2. В силу алгоритма обработки, bzip2 превосходно размножается на любое количество ядер, при этом скорость обработки и кол-во потребляемой памяти растут почти линейно.
Наскольно мне известно, для предлагаемого здесь xz нет готовой распараллеленной версии.
Для gzip есть pigz, но в силу особенностей алгоритма, от распараллеливания страдает эффективность сжатия, да и выигрыш в скорости далеко не линеен.
не факт. xz конечно быстрее на распаковке, но и bzip2 быстрее. Зависит от фазы луны. Там _очень_ разные алгоритмы.
Если пакуется один раз, а распаковывается много — bzip2 не нужен.
если памяти до дури при упаковке - согласен. Но памяти много не бывает, а процесс сжатия не быстрый... Потому часто лучше пожертвовать 5% сжатия, и сэкономить. Но решать не мне конечно.
Если ядер много, то я выберу bzip2 в распараллеленном исполнении — pbzip2. В силу алгоритма обработки, bzip2 превосходно размножается на любое количество ядер
если к «любому количеству ядер» у тебя есть 7600К кеша КАЖДОМУ ядру(для --best) - да. И размножать надо на физические ядра, а не на HT.
Наскольно мне известно, для предлагаемого здесь xz нет готовой распараллеленной версии.
есть. только нет CPU, у которых для _каждого_ ядра гигабайты памяти. А в сжатии математики особой нет, поиск/сортировка...
Для gzip есть pigz, но в силу особенностей алгоритма, от распараллеливания страдает эффективность сжатия
оно потоковое, а не блочное. впрочем как и LZMA(xz).
1) Так мой «сервер» и не всю ночь на 40гиг тратит, часа 2.5 где-то 2) Доки говорят, что xz -9 сожрет 670Мб, что на «десятках гигов» оперативы - плюнуть и растереть.
откуда ты знаешь, КУДА оно упиралось? Да, штрафные такты при работе процессора с памятью. Потому-что все твои ядра ВНЕЗАПНО полезли в память (не в свой кеш!), а память одна. И шина одна. Вот стоят и ждут. С виду - CPU тупит.
2) Доки говорят, что xz -9 сожрет 670Мб, что на «десятках гигов» оперативы - плюнуть и растереть.
чё??
man xz:
Memory usage The memory usage of xz varies from a few hundred kilobytes to several gigabytes depending on the compression settings. The settings used when compressing a file determine the memory requirements of the decompressor. Typically the decompressor needs 5 % to 20 % of the amount of memory that the compressor needed when creating the file. For example, decompressing a file created with xz -9 currently requires 65 MiB of memory. Still, it is possible to have .xz files that require several gigabytes of memory to decompress.
IRL есть такое правило - чем лучше пакует, тем больше жрёт. 500..1000Гб сожрать может легко. Я-бы рассчитывал как минимум на 2Гб. Да и memlimit на компрессию поставил-бы на всякий. А то рухнуть может...
bzip2, потому что в 90% случаев сжимает лучше. Но lzma/xz ещё лучше, но сжатие у него медленное. Я пытался заархивировать домашний каталог и думал, за сутки заархивируется. Сначала скорость была 2 Мб/сек, но через несколько часов упала до 130 кб/сек. постепенно снижаясь до 110 кб/сек. И я выключил архивацию.
Причина в том, что дублирующиеся куски данных видны lzma. Например архив с программой Jimm на официальном сайте занимает 6 Мб в RAR и 1 Мб в 7zip. Потому что там много папочек с jar-файлами для разных моделей телефонов, но многое дублируется. Вот проверка на то, дублируются ли данные, и приводит к постепенному замедлению скорости создания архива.
А если скорость критична, то zip и gzip лидируют. У меня на старом Siemens даже Opera Mini им сжимает.
Rar быстрее жмёт, но дольше распаковывает, так что всё зависит от задачи.
ЛПП
rar использует гибридный алгоритм - там LZ78 и PPMD. оба - УГ мамонта. PPMD доставляет тем, что жрёт немеренно памяти как при распаковке, так и при упаковке. Ну «немеренно» для своих 90х годов прошлого века. Мой друг помню плакал - на его компе мой архив не распаковался. Памяти не хватило. Пришлось везти через весь Питер ещё раз.
LZMA в большинстве случаев даёт лучший результат. В принципе и BWT из bzip2 даёт результат обычно немногим хуже rar'а (несколько %%), а иногда лучше. Это по сжатию. По остальным характеристикам rar suxx.