Журнал LinuxFormat - перейти на главную

LXF142:Сравнение

Материал из Linuxformat
Перейти к: навигация, поиск
Каждый месяц мы сравниваем тысячи программ – а вы можете отдыхать!

Содержание

Сравнение Ар­хи­ва­то­ры

Ник Вейч про­во­дит все­сто­роннее тес­ти­ро­вание ути­лит сжа­тия, при­ки­ды­вая, что бы та­кое ужать у се­бя лич­но.

В 1980‑х и на­ча­ле 90‑х зна­чение сжа­тия бы­ло ог­ром­ным. Пред­принимая от­ча­ян­ные по­пыт­ки со­единить­ся с BBS (bulletin board system) с по­мо­щью са­мых све­жих ути­лит Amiga, вы гре­зи­ли о вре­ме­нах, когда все бу­дет де­лать­ся бы­ст­рее и вам не при­дет­ся тра­тить столь­ко же вре­мени на рас­па­ков­ку фай­лов, сколь­ко ухо­дит на их ска­чи­вание.

Про­шло несколь­ко де­ся­ти­ле­тий, и вот уже фай­лы, с ко­то­ры­ми мы ра­бо­та­ем, достиг­ли про­сто пу­гаю­щих раз­ме­ров, и в них неред­ко встрое­ны ин­ст­ру­мен­ты сжа­тия. Ши­ри­на по­ло­сы про­пускания боль­ше не яв­ля­ет­ся про­бле­мой, и во мно­гих слу­ча­ях ме­сто на дис­ке то­же не про­бле­ма. Тем не менее, непло­хо бы иметь бы­ст­рый и удоб­ный спо­соб вы­сво­бо­дить па­ру ги­гов и не ждать так дол­го, по­ка за­гру­зит­ся вло­жение в поч­то­вое со­об­щение.

Тех­но­ло­гии сжа­тия за этот пе­ри­од про­дви­ну­лись, но не так, как хо­те­лось бы, по­сколь­ку мы сра­жа­ем­ся с экс­понен­ци­аль­ной кри­вой, ото­бра­жаю­щей спо­соб­ность к сжа­тию. Мно­гие фор­ма­ты дан­ных прак­ти­че­­ски несжи­мае­мы, по­сколь­ку все их ре­зер­вы и из­лиш­ки уже ис­чер­па­лись.

И все же есть на све­те ин­ст­ру­мен­ты, ко­то­рые под­хле­сты­ва­ют на­ши су­пер-­бы­ст­рые CPU и ги­гант­ские ре­зер­вы па­мя­ти, упот­реб­ляя но­вые трю­ки и хит­ро­сти. В на­шем Сравнении мы рас­смат­ри­ва­ем ныне здрав­ст­вую­щие но­вые и ста­рые ин­ст­ру­мен­ты. Не­ко­то­рым не доста­лось об­зо­ра, но они вклю­че­ны в таб­ли­цу – со­кра­щен­ная вер­сия ко­то­рой в жур­на­ле, а пол­ная – он­-лайн; на­при­мер, gzip здесь взят с це­лью срав­нения.

Про наш тест…

Ни­же при­ве­ден­ные тес­ты про­во­ди­лись на дву­ядер­ной ма­шине 2,6 Ггц с Fedora 14 и 4 ГБ ОЗУ DDR2. Все ука­зан­ные ско­ро­сти при­ве­де­ны ис­клю­чи­тель­но для сравнения, и все ути­ли­ты сжа­тия бы­ли ис­поль­зо­ва­ны с на­строй­ка­ми по умол­чанию, ес­ли не ука­за­но иное.

Тест 1 – ог­ром­ная ди­рек­то­рия JPEG. Это несколь­ко неспра­вед­ли­во, по­то­му что фай­лы JPEG сжа­тию прак­ти­че­­ски не под­ле­жат, но в них есть сжи­мае­мые ме­та­дан­ные.

Тест 2 – пять пор­ций дан­ных по 100 MБ ка­ж­дая, взя­тых с же­ст­ко­го дис­ка, на ко­то­ром уста­нов­лен Linux. Здесь долж­ны быть сме­шан­ные дан­ные, пре­достав­ляю­щие от­лич­ные шан­сы для сжа­тия.

Тест 3 – псев­до­слу­чай­ная под­бор­ка ре­пре­зен­та­тив­ных фай­лов из ди­ст­ри­бу­ти­ва Linux. Она вклю­ча­ет мно­же­ст­во тек­сто­вых фай­лов, но есть в ней и неко­то­рые хит­ро­сти, на­при­мер, файл ISO с мини-ди­ст­ри­бу­ти­вом, му­зы­ка и круп­ные би­нарники Linux.

RAR

Не так нере­аль­но хо­рош, как вы во­об­ра­жае­те.

Поя­вив­ший­ся в 1993 фор­мат RAR пре­тер­пел за вре­мя сво­его су­ще­ст­во­вания нема­ло из­менений. Ав­тор ори­ги­наль­ной вер­сии, Ев­гений Ро­шаль [Eugene Roshal], пре­доста­вил ли­цен­зию на про­грам­му немец­кой ком­пании, ко­то­рая в на­стоя­щее вре­мя про­из­во­дит ва­ри­ант WinRAR и ути­ли­ты команд­ной стро­ки для плат­форм, от­лич­ных от Windows.

По час­ти де­ком­прес­сии, RAR под­дер­жи­ва­ет мно­же­ст­во фор­ма­тов, вклю­чая и необыч­ные: на­при­мер, фай­лы ISO и ар­хи­вы CAB. Этот фор­мат на­мно­го по­пу­лярнее на плат­фор­ме Windows и обыч­но ис­поль­зу­ет­ся для раз­де­ления круп­ных фай­лов на пор­ции. Это удоб­но для рас­сыл­ки боль­ших фай­лов груп­пам usenet, и ути­ли­та WinRAR для Windows име­ет дей­ст­ви­тель­но боль­шой спрос. Генери­ро­вание при­ла­гае­мых фай­лов кон­тро­ля чет­но­сти и то­мов для пор­ций дан­ных об­лег­ча­ет ис­прав­ление мел­ких оши­бок при пе­ре­да­че дан­ных и га­ран­ти­ру­ет по­лу­чение точ­ной ко­пии то­го, что бы­ло от­прав­ле­но. Од­на­ко в сис­те­мах Unix «род­но­го» фор­ма­та RAR прак­ти­че­­ски не су­ще­ст­ву­ет.

Про­из­во­ди­тель­ность RAR луч­ше, чем мож­но бы­ло ожи­дать. Хо­тя его ско­рость ниже, чем у боль­шин­ст­ва ин­ст­ру­мен­тов Сравнения, ему на де­ле уда­ет­ся сэ­ко­но­мить ме­сто при ра­бо­те с раз­ны­ми ти­па­ми фай­лов. Ал­го­рит­мы сжа­тия обыч­но фо­ку­си­ру­ют­ся на дан­ных оп­ре­де­лен­но­го ти­па, и мо­жет ока­зать­ся, что тес­ти­ро­вание вы­явит луч­шую эко­но­мию мес­та на фай­лах, ха­рак­тер­ных для сис­те­мы Windows. RAR так­же не осо­бо оза­да­чи­ли прак­ти­че­­ски несжи­мае­мые фай­лы изо­бра­жений, и он непло­хо спра­вил­ся с боль­ши­ми об­раз­ами дис­ка и обыч­ным фраг­мен­том фай­ло­вой сис­те­мы. Од­на­ко в ка­че­­ст­ве ин­ст­ру­мен­та команд­ной стро­ки для Linux его ис­поль­зо­вание ог­раничен­но, и луч­ше все­го он под­хо­дит в слу­ча­ях, когда нуж­но взаи­мо­дей­ст­вие с плат­фор­ма­ми Windows.

bzip2

Он дол­жен быть в ка­ж­дом до­ме – а воз­мож­но, уже и есть.

Джу­ли­ан Сьюард [Julian Seward] вы­пустил bzip2 в 1997 под ли­цен­зи­ей BSD. Ко­му ин­те­рес­но, bzip до это­го был, но ав­тор от­ка­зал­ся от него, так как ему свети­ла ве­ро­ят­ность про­блем с па­тен­та­ми (ах, эти па­тен­ты на ПО, как же мы их лю­бим!). Но вы не го­рюй­те, по­то­му что bzip2 все рав­но луч­ше.

При­менив ком­би­на­цию раз­ных ал­го­рит­мов – та­ких, как ко­ди­ро­вание с пе­ре­мен­ной дли­ной стро­ки [run-length encoding, RLE] пре­об­ра­зо­вание Бар­ро­уза – Уи­ле­ра [Burrows – Wheeler transform] и то­му по­доб­ные хит­ро­сти – он сра­зу же про­сла­вил­ся в кру­гах Unix бла­го­да­ря впе­чат­ляю­щим ре­зуль­та­там сжа­тия по сравнению с тогдашним стан­дар­том, ути­ли­той gzip. Бу­ду­чи даль­но­вид­но на­пи­сан прак­ти­че­­ски иден­тич­ным в ис­поль­зо­вании, bzip2 ско­ро стал го­то­вой за­ме­ной для всех ти­пов и це­лей ар­хи­ви­ро­вания. Лю­бо­пыт­но, что боль­шая часть ис­ход­но­го ко­да пре­достав­ля­ет­ся с по­мо­щью ком­би­на­ции tar/bzip2 вме­сто обыч­ной для то­го вре­мени ком­би­на­ции tar/gzip.

Слег­ка раз­оча­ро­вы­ва­ет, что за ми­нув­шие с тех пор 14 лет bzip2 так и не су­мел вы­теснить gzip – из­менить при­выч­ки поль­зо­ва­те­лей Unix так же нелег­ко, как сдви­нуть с мес­та кон­тинен­таль­ный шельф.

Од­на­ко для боль­ших объ­е­мов ар­хи­ви­ро­вания борь­ба ме­ж­ду эко­но­ми­ей мес­та и вре­менем, по­хо­же, не сто­ит тру­дов. Циф­ры, по­лу­чен­ные на­ми в Тес­те 3, по­ка­зы­ва­ют, что bzip2, ра­бо­тая на мак­си­маль­ном сжа­тии, вы­сво­бо­дил несколь­ко про­цен­тов мес­та це­ной че­ты­рех­крат­но­го уве­ли­чения вре­мени. И ес­ли ско­рость для вас важнее все­го, луч­ший удел для вас по-прежнему gzip… Стоп! Пре­ж­де чем это про­изнести, пе­ре­верните страницу и взгляните на наш сравнение для lbzip2.

lbzip2

Бы­ст­рее, бы­ст­рее, бы­ст­рее! Запряги­те все свои яд­ра.

По нынешним вре­ме­нам, это ин­три­гую­щий со­перник. Ис­поль­зуя по­то­ки POSIX, этот ин­ст­ру­мент рас­па­рал­ле­ли­ва­ет про­цесс сжа­тия, что­бы про­во­дить его бо­лее чем в од­ном про­цес­се и за­тем ском­биниро­вать. Для нас это важ­но, по­то­му что в на­ши дни мас­са ма­шин ра­бо­та­ет на мно­го­ядер­ных про­цес­со­рах – а стан­дарт­ный bzip, да и мно­гие дру­гие ин­ст­ру­мен­ты Сравнения справ­ля­ют­ся толь­ко с одним по­то­ком. Ины­ми сло­ва­ми, ес­ли у вас дву­ядер­ный про­цес­сор – на­при­мер, вро­де на­ше­го – на тяж­кий труд сжа­тия па­шет толь­ко од­но яд­ро, а осталь­ные про­стаи­ва­ют. Конеч­но, осталь­ные яд­ра мо­гут по­за­бо­тить­ся о сис­те­ме, но это пус-тая тра­та ре­сур­сов.

Па­рал­ле­ли­за­ция за­дач под­ра­зу­ме­ва­ет неко­то­рые на­клад­ные рас­хо­ды по вре­мени про­цес­со­ра, по­то­му что тре­бу­ет «дис­пет­че­ра», рас­пре­де­ляю­ще­го за­да­чи по по­то­кам и ком­бинирую­ще­го их ре­зуль­та­ты в кон­це. Но да­же при этом на дву­ядер­ной ма­шине вы уви­ди­те эко­но­мию вре­мени до 40 % в за­ви­си­мо­сти от за­да­чи. Это са­мый вы­даю­щий­ся из на­ших ре­зуль­та­тов – с те­ми же на­строй­ка­ми lbzip на 35 – 45 % бы­ст­рее.

Осо­бо зна­чи­мо то, что это – один и тот же про­цесс, и в ито­ге у вас бу­дут точ­но те же фай­лы. Од­на­ко в на­ших тес­тах ре­зуль­ти­рую­щие фай­лы от­ли­ча­лись по раз­ме­ру на байт-дру­гой в ту или иную сто­ро­ну – воз­мож­но, из-за немно­го раз­но­го при­менения ал­го­рит­мов. Очень важ­но, что фай­лы, соз­дан­ные с по­мо­щью lbzip2, яв­ля­ют­ся ар­хи­ва­ми bzip2 – фор­мат не из­менил­ся, так что они мо­гут быть пе­ре­да­ны и рас­па­ко­ва­ны те­ми, кто ис­поль­зу­ет bzip2.

Lbzip2 име­ет­ся в неко­то­рых ре­по­зи­то­ри­ях, и неко­то­рые пред­ла­га­ют со­вмес­тить его со стан­дарт­ны­ми ко­ман­да­ми bzip2 – нет ника­ких про­ти­во­по­ка­заний к его ис­поль­зо­ванию хотя бы и на од­ном яд­ре.

7zip

В свои 12 лет, он все еще счи­та­ет­ся но­вич­ком…

Поя­вив­ший­ся в 1999, 7zip (он же 7z или 7za) – от­но­си­тель­ный но­ви­чок в сфе­ре сжа­тия. Он был на­пи­сан Иго­рем Пав­ло­вым [Igor Pavlov], ко­то­рый так­же раз­ра­бо­тал ал­го­ритм LZMA, фор­ми­рую­щий ме­тод сжа­тия по умол­чанию. Код 7zip вклю­ча­ет и дру­гие ме­то­ды сжа­тия – на­при­мер, bzip2, так что спо­со­бен под­дер­жи­вать фор­ма­ты, от­лич­ные от фор­ма­та по умол­чанию 7z.

И хо­тя код его от­крыт, основ­ное внимание раз­ра­бот­чи­ков уде­ля­ет­ся плат­фор­ме Windows, где 7z поль­зу­ет­ся доста­точ­ной по­пу­ляр­но­стью, и код со­про­во­ж­да­ет­ся при­ят­ным ин­тер­фей­сом. Ос­нов­ной ис­ход­ный код под­вер­гал­ся по­прав­кам, а ряд про­ек­тов ис­поль­зо­вал LZMA SDK для соз­дания весь­ма по­хо­жих ва­ри­ан­тов. Один из них – xz, дру­гие вклю­ча­ют p7zip. Для на­ше­го тес­та мы ском­пи­ли­ро­ва­ли ис­ход­ный код ори­ги­на­ла.

Гля­дя на ре­зуль­та­ты тес­та, лег­ко ре­шить, что 7z никак не ис­поль­зу­ет пред­ла­гае­мые несколь­ко ядер. Во­об­ще-то это мно­го­по­то­ко­вое при­ло­жение, но да­же бу­ду­чи та­ко­вым, оно ра­бо­та­ет чуть мед­леннее од­но­по­то­ко­во­го ар­хи­ва­то­ра bzip2 и вдвое мед­леннее lbzip2. Мы мог­ли бы сде­лать оп­ре­де­лен­ную скид­ку это­му ко­ду, по­сколь­ку он ком­пи­ли­ро­вал­ся из ис­ходника об­ще­го на­зна­чения и не под­стро­ен спе­ци­аль­но для Linux, но он ра­бо­та­ет луч­ше, чем pxz, па­рал­ле­ли­зо­ван­ная вер­сия про­из­вод­но­го про­грам­мы сжа­тия xz.

Об­ласть, где дан­ный ал­го­ритм ра­бо­та­ет очень хо­ро­шо – рас­па­ко­вы­вание: эта ути­ли­та и ути­ли­та xz ра­бо­та­ют без­от­каз­но луч­ше, чем все осталь­ные в па­ке­те (по­ми­мо gzip, ко­то­рая, кста­ти, не так уж и сжа­та).

7z – по­лез­ный ин­ст­ру­мент, и спо­со­бен стать еще по­лезнее на бы­ст­рых ма­ши­нах или если нуж­но хо­ро­ше­е ка­че­­ст­во сжа­тия и бы­ст­рое рас­па­ко­вы­вание (на­при­мер, при раздаче при­ло­жений и дан­ных).

Xz

На­звание, на­во­дя­щее на во­прос «По­че­му?»

Xz – еще од­на про­грам­ма, ко­то­рая по­ку­ша­ет­ся за­менить gzip, с та­ки­ми же оп­ция­ми и син­так­си­сом. Она ра­бо­та­ет на тех же ал­го­рит­мах LZMA, что ис­поль­зу­ют­ся в 7z, так что ре­зуль­та­ты бу­дут прак­ти­че­­­ски оди­на­ко­вы.

Обес­­ку­ра­жи­ва­ет, что ал­го­рит­мы LZMA долж­ны бы бы­ли про­гло­тить все на­ши тес­то­вые фай­лы и дать хо­ро­шую эко­но­мию мес­та без осо­бо­го уве­ли­чения вре­мени, од­на­ко по­лу­чен­ные циф­ры го­во­рят об об­рат­ном. Ре­зуль­та­ты сжа­тия хо­ро­ши, и в ре­жи­ме по умол­чанию xz, по­хо­же, на­стро­ен на боль­шее сжа­тие, чем 7z, но це­на это­му эф­фек­ту – нема­лые вре­мен­ные за­тра­ты. Пусть да­же мы про­иг­но­ри­ру­ем ре­зуль­та­ты пер­во­го тес­та, ко­то­рый бьет по ин­ст­ру­мен­там, пы­таю­щим­ся сде­лать свою ра­бо­ту хо­ро­шо да еще уло­жить­ся в уста­нов­лен­ные вре­мен­ные рам­ки: xz не вы­гля­дит вдох­нов­ляю­ще и в дру­гих тес­тах. На­при­мер, ра­ди эко­но­мии мес­та на па­ру про­цен­тов он тра­тит вдвое боль­ше вре­мени, чем bzip2, а из-за сво­ей од­но­по­точ­ной при­ро­ды при­мер­но во столь­ко же раз ху­же 7z, при соз­дании фай­ла поч­ти та­ко­го же раз­ме­ра.

Есть так­же и па­рал­ле­ли­зо­ван­ная вер­сия xzpxz; мы вклю­чи­ли от­дель­ные дан­ные по ней в таб­ли­цу в кон­це. Она да­ет зна­чи­тель­ный вы­иг­рыш по вре­мени, но не та­кой, как у lbzip2 с ее ал­го­рит­мом bzip2. Ей уда­ет­ся сэ­ко­но­мить до 35 % вре­мени, что весь­ма ра­ду­ет и вы­во­дит ее впе­ред по сравнению с дру­ги­ми од­но­по­точ­ны­ми ар­хи­ва­то­ра­ми в плане ско­ро­сти, но все же не по­зво­ля­ет ей встать вро­вень с дру­ги­ми мно­го­по­точ­ны­ми ин­ст­ру­мен­та­ми, и да­же с 7z.

Как мы уже упо­ми­на­ли в об­зо­ре 7z, пре­иму­ще­ст­ва это­го при­ло­жения – хо­ро­шее сжа­тие и бы­строе рас­па­ко­вы­вание; имен­но по­это­му Slackware на­чал ис­поль­зо­вать его для соз­дания па­ке­тов. Воз­мож­но, для рас­про­странения па­ке­тов это и хо­ро­ший вы­бор, но он не идеа­лен, ес­ли вы занимае­тесь ар­хи­ви­ро­ванием.

Lrzip

Бла­го­да­ря дли­тель­но­му на­блю­дению, де­ла­ет неплохую ра­бо­ту.

Lrzip – от­но­си­тель­ный но­ви­чок в ми­ре ути­лит сжа­тия; это про­из­вод­ное ути­ли­ты rzip. Ос­нов­ное внимание здесь уде­ле­но сжа­тию боль­ших фай­лов, и луч­ше все­го lrzip ра­бо­та­ет в сис­те­мах с доста­точ­ны­ми объ­е­ма­ми па­мя­ти и круп­ны­ми фай­ла­ми для сжа­тия (бо­лее 100 MБ). Это объ­яс­ня­ет­ся проведением ши­ро­ко­мас­штаб­ных про­ве­рок на из­бы­точ­ность [redundancy checks] для сравнения об­лас­тей дан­ных, в на­де­ж­де сэ­ко­но­мить ме­сто.

Ме­тод по умол­чанию для соб­ст­вен­но сжа­тия применяет ал­го­рит­мы LZMA, как 7z, а так­же ар­хи­ва­то­ры xz и pxz на­ше­го Сравнения. LZMA бы­ст­ро пре­вра­ща­ет­ся в ал­го­ритм-стан­дарт, несмот­ря на неров­ную про­из­во­ди­тель­ность ути­лит на его основе. Ка­ким бы сек­рет­ным соусом ни был при­прав­лен lrzip, он, по­хо­же, ра­бо­та­ет, по­сколь­ку перемалывает круп­ные фай­лы куда бы­ст­рее дру­гих LZMA-ути­лит.

По­ми­мо LZMA, вы мо­же­те вы­брать ал­го­рит­мы LZO, ко­то­рые от­ли­ча­ют­ся бе­зум­ной ско­ро­стью, но за­то не обес­пе­чи­ва­ют достой­ной сте­пени сжа­тия, или об­ра­тить­ся к жут­ко мед­ли­тель­но­му ZPAQ со сжа­тием по мак­си­муму. Про­грам­ма ZPAQ име­ет­ся так­же в от­дель­но взя­том ви­де, но ее ком­пи­ля­ция крайне пу­та­ная. Тем не менее мы вклю­чи­ли ее по­ка­за­те­ли для полноты картины. При по­мо­щи крайних мер ей, ка­жет­ся, уда­ет­ся соз­да­вать самые ком­пакт­ные ар­хи­вы. Это ско­рее до­ка­за­тель­ст­во кон­цеп­ции, чем по­все­днев­ная ути­ли­та сжа­тия, по при­чине ог­ром­но­го ко­ли­че­­ст­ва вре­мени и ре­сур­сов, тре­буе­мых для соз­дания фай­лов. Средняя скоро­сть ZPAQ все­го око­ло 170k в се­кун­ду! А глав­ная бе­да – на рас­па­ков­ку ухо­дит при­мер­но столь­ко же.

Lrzip умуд­ря­ет­ся до­бить­ся хо­ро­ших ре­зуль­та­тов по вре­мени и хо­ро­шей сте­пени сжа­тия, и име­ет раз­но­об­раз­ные оп­ции, что за­став­ля­ет взгля­нуть на него повнима­тельнее.

PeaZip

Тра­ди­ци­он­ный zip-ар­хи­ва­тор с вы­дум­кой и фай­ло­вым менед­же­ром внут­ри.

PeaZip несколь­ко вы­де­ля­ет­ся сре­ди вы­бран­ных на­ми ар­хи­ва­то­ров. В от­ли­чие от про­чих, это при­ло­жение с GUI ра­бо­та­ет с боль­шим ко­ли­че­­ст­вом ар­хив­ных фор­ма­тов, за­од­но пред­ла­гая дру­гие функ­ции. Конеч­но же, в Linux име­ют­ся та­кие ин­ст­ру­мен­ты, как File Roller и Ark, ко­то­рые вы­пол­ня­ют схо­жие за­да­чи и слу­жат ин­тер­фей­са­ми для боль­шин­ст­ва рас­смот­рен­ных здесь дру­гих ин­ст­ру­мен­тов ар­хи­ви­ро­вания, но PeaZip за­слу­жи­ва­ет упо­ми­нания, по­то­му что еще и соз­да­ет соб­ст­вен­ный фор­мат ар­хи­ва.

Фай­лы PEA ста­вят це­лью быть со­вре­мен­ной ин­тер­пре­та­ци­ей фор­ма­та RAR – кон­тейнера для раз­ных ви­дов сжа­тия, спо­соб­но­го к то­му же иметь до­ба­воч­ные уровни, та­кие как раз­но­об­раз­ные ти­пы сжа­тия, или де­лить­ся на пор­ции, при­ем­ле­мые для рас­про­странения. Род­ной фор­мат это­го ар­хи­ва – все­го лишь ва­риа­ция ал­го­рит­мов Zip. Вне ми­ра Linux, ар­хив­ный фор­мат Zip по-прежнему при­ме­ня­ет­ся ши­ро­ко, в основ­ном по при­чине со­вмес­ти­мо­сти. И хо­тя PeaZip ра­бо­та­ет и с дру­ги­ми фор­ма­та­ми, в таб­ли­це мы учи­ты­ва­ли его про­из­во­ди­тель­ность на осно­вании соз­дания род­ных PEA-фай­лов по­ал­го­рит­мам Zip.

Как след­ст­вие, про­из­во­ди­тель­ность не осо­бо впе­чат­ля­ет. Он су­мел угнез­дить­ся в де­сят­ке ли­де­ров по ско­ро­сти, но сте­пень сжа­тия низ­кая, и по обо­им па­ра­мет­рам его час­то пре­восхо­дил lbzip2. Тем не менее, PeaZip непло­хо се­бя ве­дет и не за­гла­ты­ва­ет по умол­чанию все ва­ше ОЗУ; а значит, в об­де­лен­ных ре­сур­са­ми сис­те­мах его про­из­во­ди­тель­ность мо­жет вы­гля­деть луч­ше. При ис­поль­зо­вании луч­ших из имею­щих­ся ре­жи­мов сжа­тия, он ока­зы­ва­ет­ся прак­ти­че­­ски на рав­ных с 7z.

По­ми­мо ар­хи­ви­ро­вания, PeaZip при­го­ден как менед­жер фай­лов и пре­ду­смат­ри­ва­ет ски­ны для ра­бо­чих сто­лов GTK/Gnome и KDE. Воз­мож­но, он боль­ше на­це­лен на поль­зо­ва­те­лей Windows, но у него от­крытый код и лю­бов­ное от­но­шение к Linux.

ARJ

Все еще це­п­ля­ет­ся за су­ще­ст­во­вание, хо­тя и без осо­бо­го эн­ту­зи­аз­ма.

Поя­вив­ший­ся в 90‑х го­дах фор­мат ARJ за­вое­вал по­пу­ляр­ность не сра­зу, но все же стал основ­ным для неко­то­рых ви­дов ар­хи­ви­ро­вания. По­доб­но RAR, он под­дер­жи­ва­ет про­стое раз­де­ление фай­ла на пор­ции для ар­хи­ви­ро­вания на дис­ки или, ча­ще, для де­ления фай­ла на пор­ции с це­лью об­лег­чения его пе­ре­да­чи или рас­про­странения.

Из­на­чаль­но про­грам­ма arj бы­ла на­пи­са­на для DOS, но вско­ре ста­ла пол­но­цен­ным при­ло­жением для на­столь­ных сис­тем Windows, и основ­ное его тру­доуст­рой­ст­во при­хо­дит­ся имен­но на эту плат­фор­му. Бы­ла соз­да­на вер­сия с от­кры­тым ко­дом этой про­грам­мы, ко­то­рая, ес­те­ст­вен­но, на­шла до­ро­гу в Linux, и хо­тя этот фор­мат никогда не был осо­бо по­пу­ля­рен чис­то в Linux, он да­ет пре­иму­ще­ст­во при кросс-плат­фор­мен­ной пе­ре­да­че фай­лов.

На­ши ре­зуль­та­ты по­ка­за­ли, что эта про­грам­ма твер­до занима­ет по­зи­цию бы­ст­ро­го вы­полнения ра­бо­ты, но за счет не слиш­ком силь­но­го сжа­тия. Во вто­ром тес­те она лишь немно­го усту­пи­ла су­пер­ско­ро­ст­но­му gzip, но выда­ла худ­шие ре­зуль­та­ты по эко­но­мии мес­та в двух по­следних тес­тах. То, что она не по­ка­зы­ва­ет луч­шей про­из­во­ди­тель­но­сти, чем стан­дарт­ная про­грам­ма gzip в сис­те­мах Unix – ве­ро­ят­но, од­на из при­чин, по ко­то­рой ею ред­ко поль­зу­ют­ся на ма­ши­нах Linux, хо­тя она, тем не менее, по-прежнему под­дер­жи­ва­ет­ся и име­ет­ся прак­ти­че­­ски в ка­ж­дом ди­ст­ри­бу­ти­ве.

В борь­бе с фор­ма­том RAR arj не сда­вал­ся дол­го, но за по­следние го­ды да­же ком­мер­че­­ская вер­сия по­лу­чи­ла минимум об­нов­лений, и мы впра­ве ут­вер­ждать, что этот фор­мат по­пал в спи­сок вы­ми­раю­щих. При­ят­но знать, что он су­ще­ст­ву­ет, но он не для по­все­днев­но­го ис­поль­зо­вания. Да­же для де­ления фай­лов на пор­ции и от­прав­ки фай­лов в Windows, фор­мат RAR бу­дет го­раз­до луч­шим вы­бо­ром.

Вердикт

Спер­ва – ко­рот­кое за­ме­чание: здесь у нас про­сто нет мес­та, что­бы це­ли­ком воспро­из­ве­сти таб­ли­цу по­лу­чен­ных непо­силь­ным тру­дом ре­зуль­та­тов тес­ти­ро­вания, так что мы вы­ло­жи­ли все циф­ры пол­но­стью на наш сайт, на тот слу­чай, ес­ли вам за­хо­чет­ся оценить их са­мим.

Наш пер­вый вы­вод, сде­лан­ный на осно­ве всех дан­ных, со­б­ран­ных для это­го Сравнения, та­ков: ес­ли у вас мно­го­ядер­ная ма­ши­на Linux, сто­ит об­ра­тить внимание на один из мно­го­по­то­ко­вых ин­ст­ру­мен­тов. На дву­ядер­ной ма­шине разница оче­вид­на. А ес­ли ядер боль­ше двух, она вообще мо­жет из­менить ва­ше ми­ро­восприя­тие.

Что ка­са­ет­ся са­мих тес­тов – пер­вый из них был под­ло­ва­т, по­сколь­ку, неза­ви­си­мо от при­ме­няе­мо­го ал­го­рит­ма, вряд ли мож­но до­ба­воч­но сжать то, что уже и так яв­ля­ет со­бой дан­ные с вы­со­кой сте­пе­нью сжа­тия. Труднее для сжа­тия толь­ко су­гу­бо сто­хас­ти­че­­ские дан­ные, по­это­му мы их из­бе­га­ли.

Ути­ли­ты arj и RAR, как вско­ре ста­ло яс­но, по­лез­ны толь­ко для сво­их ку­зе­нов под Windows или для об­ме­на фай­ла­ми с ними че­рез элек­трон­ную поч­ту. Что ка­са­ет­ся бо­лее ли­нук­со­вых ин­ст­ру­мен­тов – для нас ста­ло сюр­при­зом, на­сколь­ко хо­ро­шо во­ло­кут ста­рые кони. Bzip2 (вме­сте с мно­го­по­точ­ным ва­ри­ан­том lbzip2) и gzip от­лич­но справ­ля­ют­ся с за­да­чей ар­хи­ви­ро­вания и умуд­ря­ют­ся до­стичь неве­ро­ят­ной бы­ст­ро­ты: ар­хи­ви­ро­вание фай­ла и про­стое ко­пи­ро­вание его же осо­бо не раз­ли­ча­ют­ся, что весь­ма удоб­но со всех то­чек зрения. PeaZip за­слу­жи­ва­ет осо­бой чес­ти за про­сто­ту в ис­поль­зо­вании и пре­достав­ление ин­тер­фей­са для мно­гих из этих ути­лит.

За­тем идут ин­ст­ру­мен­ты на осно­ве LZMA, ко­то­рые, воз­мож­но, по­ка­жут­ся гостя­ми из бу­ду­ще­го. Не­сколь­ко уди­ви­ло, что обыч­ный ин­ст­ру­мент 7z по­ка­зал­ся луч­ше, чем xz/pxz, лю­би­мые в Slackware. Для при­ло­жений, в ко­то­рых ско­рость рас­па­ков­ки яв­ля­ет­ся клю­че­вым мо­мен­том, они безуслов­но, впе­ре­ди всех. В этом слу­чае ничто не сравнит­ся с pxz, кро­ме са­мо­го gzip.

Ес­ли го­во­рить о про­из­во­ди­тель­но­сти в це­лом, то по­бе­ди­те­лем ока­зы­ва­ет­ся lrzip, ко­то­рый, бла­го­да­ря по­пу­ляр­но­му ал­го­рит­му LZMA, быстр и эко­но­мен. По­это­му мы и поместили его на верхнюю ступеньку пье­де­ста­ла.

Ин­ст­ру­мен­ты ар­хи­ви­ро­ва­ния – толь­ко кос­тяк

Сравнительная таблица

Персональные инструменты
купить
подписаться
Яндекс.Метрика