lzma

Jun. 14th, 2010 09:14 am
netch80: (Default)
[personal profile] netch80
Что-то начали массово менять средство сжатия для публичных архивов...

lzma на 1-м уровне делает файлы меньше в полтора раза, чем gzip на самом 9-м.
Зато и процессора жрёт при этом в 2 раза больше.

$ for P in gzip bzip2 xz; do for L in 1 3 6 9; do /usr/bin/time sh -c "$P -c$L ~/Mail/uanog-track.2009 >c.$P.$L" 2>&1 | awk '{print $3}'; done; done
0.21
0.24
0.40
0.44
1.90
2.16
2.44
2.66
1.02
3.98
5.89
6.04

$ ls -ld c.* | awk '{print $5 " " $9}'
1874385 c.bzip2.1
1623726 c.bzip2.3
1510405 c.bzip2.6
1451469 c.bzip2.9
2113625 c.gzip.1
2027492 c.gzip.3
1840844 c.gzip.6
1835760 c.gzip.9
1621832 c.xz.1
1317072 c.xz.3
1242684 c.xz.6
1242684 c.xz.9

Исходный файл - 6810957 байт.

Date: 2010-06-14 07:28 am (UTC)
From: [identity profile] dottedmag.livejournal.com
Сжимают файл один раз, а разжимают - много. unlzma ест только чуть-чуть больше, чем gunzip.

Date: 2010-06-14 07:52 am (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Ещё и памяти при сжатии требуется намного больше. Поэтому и уровни 8-9 использовать не стоит, потребности в памяти увеличиваются очень резко, а разница в размере — единицы процентов.

Зато lzma — несимметричный алгоритм, разжимает намного быстрее bzip2 при существенном выигрыше в размере (и всего вдвое медленнее gzip-а). Для публичных архивов, особенно исходников и других текстов — самое то. Не знаю, как xz, но lzma я считаю достаточно зрелым и распространённым компрессором для регулярного использования.

Date: 2010-06-14 08:34 am (UTC)
From: [identity profile] wrar.livejournal.com
Мы SIM-IM в .tar.7z ещё 4 года назад выкладывали :) Выигрыш в 2 раза от .gz, в полтора от .bz2 и интернет в ту пору был похуже, чем сейчас.

Date: 2010-06-14 07:36 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
В чём смысл .tar.7z, а не .tar.lzma?

Date: 2010-06-14 07:39 pm (UTC)
From: [identity profile] wrar.livejournal.com
4 года назад lzma-utils не было как минимум в альте, т.е. даже если б было чем его делать, скорее всего много где нельзя было открывать. В т.ч. подвендой.

Date: 2010-06-14 10:50 am (UTC)
kastaneda: (Default)
From: [personal profile] kastaneda
Debian массово переходит с lzma на xz, что лично мне кажется несколько странным / преждевременным.
И, таки да, lzma — мой любимый архиватор.

Date: 2010-06-14 02:40 pm (UTC)
From: [identity profile] blacklion.livejournal.com
xz это вообще-то тот же lzma :) просто следующая версия

Date: 2010-06-14 02:44 pm (UTC)
kastaneda: (Default)
From: [personal profile] kastaneda
А старый lzma новые архивы xz развернёт? Если нет — то это другой архиватор, хоть и с того же сайта.

Date: 2010-06-14 07:38 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Вот когда xz появится в oldstable — можно будет говорить о распространённости и стабильности.

Date: 2010-06-14 07:46 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Не дебианом единым жив мир.

Date: 2010-07-19 02:58 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Пока оно появится в Debian Stable и перейдёт в Oldstable — у всего мира уж точно будет давно и надёжно.

Date: 2010-06-14 07:46 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Мне, напримиер, вот это куда как актуальнее.

Date: 2010-06-14 02:49 pm (UTC)
From: [identity profile] dadv.livejournal.com
xz уже в freebsd base system, в 8.1-RELEASE будет.

Date: 2010-06-14 11:40 am (UTC)
From: [identity profile] lutay.livejournal.com
тикет! ;-)

Date: 2010-06-14 12:00 pm (UTC)
From: [identity profile] iskatel.livejournal.com
это очень давно известно, уже лет 10 как.
Просто в последнее время стал широко распространён 7zip, вот и cтали жать.
Под виндой давно уже широко используется ms Cab (словарь до 2 Mb), ну и местами rar.
Просто в unix мире довольно сильны позиции ископаемых gzip/bzip, несмотря на то, что они плохи по многим параметрам.

Date: 2010-06-17 09:53 am (UTC)
From: [identity profile] lstranger.livejournal.com
В линухе у tar есть ключики упаковки --xz и --lzma, во фре 8.0 пока нет, так что не факт, что она распознает их для распаковки. Но перспектива интересная. :)

Date: 2010-09-07 07:21 pm (UTC)
From: [identity profile] nuclight.livejournal.com
Тенденция не самая хорошая - сталкивался с тем, что на Хабре, например, выложили архив с примером на 25 Кб и пожали в lzma - и приходится его ставить только для такой мелочи. О совместимости не думают :/

И немного оффтопика по статьям на segfault.kiev.ua:

> E.g. a program determine file type by default using its suffix; if you want to process all files in directory as mp3 files, you can't use `-mode=mp3 *', but instead shall provide "inserting" into forced mode and "exiting" from it: `-force-mode=mp3 * -exit-force-mode'. If program processes wildcard by itself, it can use more simple approach and treat expansion results internally.

> "Время последнего доступа пишется с точностью до дня, последней модификации - с точностью до 2 секунд, а создания - до сотых долей секунды (на NT?)."

Это не какой-то сакральный смысл, а банальная нехватка места в 32-байтовой записи каталога на FAT. Какую раньше вводили, так и получилось. А для старших двух байтов номера начального кластера на FAT32 - так и вовсе пожертвовали полем, принадлежавшим OS/2.

И еще в дизайне протоколов упоминался epic fail RFC 822 - было бы интересно более подробно, где еще проблемы формата RFC 822 (его Раймонд в TAOUP любит, например), и как оно было бы лучше, с учетом нонешних реалий почты.

упс, про glob забыл

Date: 2010-09-07 07:23 pm (UTC)
From: [identity profile] nuclight.livejournal.com
В примере выше - почему you can't use `-mode=mp3 *' ? Один фиг же после разворота в обоих вариантах.

Или я не понял значение опций гипотетической программы

Re: упс, про glob забыл

Date: 2011-02-04 09:38 am (UTC)
From: [identity profile] netch80.livejournal.com
Потому что семантика простого -mode предполагает разбор ключей после него, в то время как -force-mode - уже по названию предполагает, что далее всё кроме условного -exit-force-mode считается файлом, даже если похоже на ключ.
Разумеется, в полной реализации это должен быть даже не -exit-force-mode, а случайная последовательность знаков.

Re: упс, про glob забыл

Date: 2011-02-06 02:37 pm (UTC)
From: [identity profile] nuclight.livejournal.com
Гм, дак это же совсем другая проблема, и она совершенно не изменилась бы, если бы, допустим, никакого * не было, а просто шел бы "ручной" перечень файлов. Тут проблема в том, что символ, с которого начинаются ключи, разрешен в именах файлов: например, в досе этой проблемы не было, с традицией начинать /ключи /так. Для решения придуман "--", хотя, на мой взгляд, более верным было бы запретить в именах ASCII control characters, и в качестве соглашения передавать программам какой-нибудь символ с кодом <31, автоматически конвертируемый из минуса шеллом.

Date: 2011-02-04 09:36 am (UTC)
From: [identity profile] netch80.livejournal.com
> Это не какой-то сакральный смысл, а банальная нехватка места в 32-байтовой записи каталога на FAT. Какую раньше вводили, так и получилось.

Тогда очень странно, что заняли последнее место несущественной ерундой.

> И еще в дизайне протоколов упоминался epic fail RFC 822 - было бы интересно более подробно, где еще проблемы формата RFC 822

Их в общем три:
1) escaped CRLF
2) разрешённый NUL
Обе устранены в 2822;
3) возможность вставлять comment'ы куда угодно - это и сейчас проблема и поэтому никем не используется.
Остальное вполне в пределах поддерживаемого сейчас большинством реализаций.

> его Раймонд в TAOUP любит, например

Я думаю, он любит за общий формат типа ключ:значение, а не за тараканы.

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 20th, 2026 04:37 am
Powered by Dreamwidth Studios