Доповідь Архівація файлів
Код роботи: 067
Вид роботи: Доповідь
Предмет: Інформатика
Тема: Архівація файлів
Кількість сторінок: 14
Дата виконання: 2015
Мова написання: українська
Ціна: безкоштовно
1. Сучасні архіватори
2. Методи стиснення
3. Особливості даних
4. Які існують архіватори і чим вони відрізняються?
5. Тестування максимальному ступені стиснення
5.1. Тестова система
5.2. Архіватори
5.3. Функціональність і характеристики архіваторів
6. Тестування при високій швидкості стиснення
6.1. Тестова система
6.2. Архіватори
6.3. Функціональність і характеристики архіваторів
7. Підсумки
Незважаючи на низький ступінь стиснення ZIP є самим поширеним архіватором та форматом архівів. Він має дуже високою швидкістю упаковки і розпаковування. Непогано підходить для оперативного архівування, але тільки в режимі ZIP fast.
Архіватори ACE, RAR і Squeez показали близькі результати з невеликим перевагою за ступенем стиснення у RAR, і при високій швидкості стиснення у Squeez. Вони не є лідерами, а за максимальною мірою стиснення істотно відстають від передових архіваторів. Різниця знаходиться в межах від 25% до 105% (!), в середньому 55%. З іншого боку, вони мають багату функціональністю. У режимі максимального стиснення володіють порівняно високою швидкістю. У деяких випадках ці архіватори є непоганим вибором.
Як універсальні архіватори з високим ступенем стиснення (на 30% гірше кращих архіваторів) можна рекомендувати 7zip і UHARC. Важливим перевагою цих архіваторів є безкоштовність. UHARC майже завжди створює архіви з кращої ступенем стиснення, але він трохи менше функціональний, має статус бета версії, і, на відміну від 7zip, є симетричним. У максимальному режимі для UHARC потрібно всього 54 MB оперативної пам'яті, що дозволяє використовувати цей архіватор на комп'ютерах з обмеженим об'ємом оперативної пам'яті. При високій швидкості стиснення UHARC просто лідер.
7zip є найкращим за ступенем стиснення асиметричним архіватором. Створені за його допомоги архіви можна використовувати майже на будь-яких комп'ютерах. Звичайно в межах розумного, так як розмір словника можна встановити і в 256 MB. Швидкість стиснення у максимальному режимі можна легко збільшити в 2-3 рази шляхом зменшення значення параметра Word size. Ступінь стиснення погіршитися менш ніж на пару відсотків. Для стиснення тексту у програмі-архіватор 7-zip є окремий спеціальний метод PPMd. До речі, цей метод ідентичний текстового методу стиснення RAR. Найближчим часом очікується додавання спеціального методу для стиснення мультимедіа даних, на яких 7zip показав погані результати.
Серед архіваторів з високим ступенем стиснення можна відзначити WinUDA і Slim. Архіватор WinUDA незважаючи на низьку швидкість і порівняно низьку функціональність справив приємне враження. Всі самі необхідні функції є, у тому числі можливе створення саморозпаковуються (SFX) архівів. Причому сам модуль Розпакувальник займає всього 18 KB. Є метод стиснення Mode-0, для якого потрібно всього 24 MB оперативної пам'яті. Швидкість при цьому зростає до 127 KB / s, а ступінь стиснення погіршується незначно.
Slim має більш високій ступінь стиснення (з урахуванням особливостей тестування) та швидкістю, але не має таких важливих функцій, як створення що саморозпаковуються (SFX) архівів, графічної (GUI) версії і безперервного режиму стиснення. Крім того, він менш стабільний.
Що ж стосується перспектив розвитку архіваторів, то вже давно підвищення ступеня стиснення в основному досягається за рахунок більш ресурсномістких методів. Один з кращих архіваторів PAQAR в типовому режимі має швидкість 5 КБ / с. Іншим напрямком є розвиток спеціальних методів, призначених тільки для певних форматів файлів. Саме в цьому напрямку можна очікувати деяких істотних зрушень.
Результати проведеного тестування відрізняються від рейтингу http://www.maximumcompression.com/ і Squeeze Chart. Це зайвий раз підкреслює, що результати сильно залежать від вихідних даних і параметрів стиснення.
Сучасні архіватори
Архіватори - це програми для створення архівів. Архіви призначені для зберігання даних в зручному компактному вигляді. В якості даних зазвичай виступають файли і папки. Як правило, дані попередньо піддаються процедурі стиснення або упаковки. Тому майже кожен архіватор одночасно є програмою для стиснення даних. З іншого боку, будь-яка програма для стиснення даних може розглядатися як архіватор. Ефективність стиснення є найважливішою характеристикою архіваторів. Від неї залежить розмір не може архівів. Чим менше архів, тим менше місця потрібно для його зберігання. Для передачі потрібна менша пропускна спроможність каналу передачі або затрачається менший час. Переваги архівів очевидні, якщо врахувати, що дані зменшуються в розмірі і в 2 рази, і в 5 разів.
Стиснення даних використовується дуже широко. Можна сказати, майже скрізь. Наприклад, документи PDF, як правило, містять стислу інформацію. Досить багато виконуваних файлів EXE стиснуті спеціальними пакувальниками. Усілякі мультимедійні файли (GIF, JPG, MP3, MPG) є своєрідними архівами.
Основним недоліком архівів є неможливість прямого доступу до даних. Їх спочатку необхідно витягти з архіву або розпакувати. Операція розпакування, втім, як і упаковки, вимагає деяких системних ресурсів. Це не миттєва операція. Тому архіви в основному застосовують із порівняно рідко використовуваними даними. Наприклад, для зберігання резервних копій або інсталяційних файлів.
У даний момент існує багато архіваторів. Вони мають різну поширеність і ефективність. Деякі цікаві архіватори НЕ відомі широкому колу потенційних користувачів. Особливий інтерес представляють оцінка та порівняння ефективності стиснення популярних архіваторів.
Методи стиснення
Розроблено велику кількість різноманітних методів, їх модифікацій і підвидів для стиснення даних. Сучасні архіватори, як правило, одночасно використовують кілька методів одночасно. Можна виділити деякі основні.
Кодування довжин серій (RLE - скорочення від run-length encoding - кодування довжин серій)
Дуже простий метод. Послідовна серія однакових елементів даних замінюється на два символи: елемент і кількість його повторень. Широко використовується як додатковий, так і проміжний метод. В якості самостійного методу застосовується, наприклад, в графічному форматі BMP.
Словниковий метод (LZ - скорочення від Lempel Ziv - імена авторів)
Найбільш поширений метод. Використовується словник, що складається з послідовностей даних чи слів. При стисненні ці слова заміняються на їх коди зі словника. У найбільш поширеному варіанті реалізації в як словника виступає сам вихідний блок даних.
Основним параметром словникового методу є розмір словника. Чим більше словник, тим більше ефективність. Однак для неоднорідних даних надмірно великий розмір може бути шкідливий, тому що при різкому зміну типу даних словник буде заповнений неактуальними словами. Для ефективної роботи даного методу при стисненні потрібна додаткова пам'ять. Приблизно на порядок більше, ніж потрібно для вихідних даних словника. Істотною перевагою словникового методу є проста і швидка процедура розпакування. Додаткова пам'ять при цьому не потрібно. Така особливість особливо важлива, якщо необхідний оперативний доступ до даних.
Ентропійно метод (Huffman - кодування Хаффмена, Arithmetic coding - арифметичне кодування)
У цьому методі елементи даних, які зустрічаються частіше, кодуються при стисненні більш коротким кодом, а більш рідкісні елементи даних кодуються більш довгим кодом. За рахунок того, що коротких кодів значно більше, загальний розмір виходить менше вихідного.
Широко використовується як додатковий метод. В якості самостійного методу застосовується, наприклад, в графічному форматі JPG.
Метод контекстного моделювання (CM - скорочення від context modeling - контекстне моделювання)
У цьому методі будується модель вихідних даних. При стисненні чергового елемента даних ця модель видає своє пророцтво або ймовірність. Згідно цієї імовірності, елемент даних кодується ентропійним методом. Чим точніше модель буде відповідати вихідним даним, тим точніше вона буде видавати пророкування, і тим коротше будуть кодуватися елементи даних.
Для побудови ефективної моделі потрібно багато пам'яті. При розпакуванні доводиться будувати точно таку ж модель. Тому швидкість і вимоги до обсягу оперативної пам'яті для стиснення та розпакування майже однакові. У даний момент методи контекстного моделювання дозволяють отримати найкращу ступінь стиснення, але відрізняються надзвичайно низькою швидкістю.
PPM (PPM - Prediction by Partial Matching - пророкування по частковому збігу)
Це особливий підвид контекстного моделювання. Пророкування виконується на підставі певної кількості попередніх елементів даних. Основним параметром є порядок моделі, що задає це кількість елементів. Чим більше порядок моделі, тим вище ступінь стиснення, але потрібно більше оперативної пам'яті для зберігання даних моделі. Якщо оперативної пам'яті недостатньо, то така модель з великим порядком показує низькі результати. Метод PPM особливо ефективний для стиснення текстових даних.
Попередні перетворення або фільтрація
Дані методи служать не для стиснення, а для подання інформації в зручному для подальшого стиснення вигляді. Наприклад, для нестислих мультимедіа даних характерні плавні зміни рівня сигналу. Тому для них застосовують дельта-перетворення, коли замість абсолютного значення береться відносне. Існують фільтри для тексту, виконуваних файлів, баз даних та інші.
Метод сортування блоку даних (BWT - скорочення від Burrows Wheeler Transform - по імені авторів)
Це особливий вид або група перетворень, в основі яких лежить сортування. Такому перетворенню можна піддавати майже будь-які дані. Сортування проводиться над блоками, тому дані попередньо розбиваються на частини. Основним параметром є розмір блоку, який піддається сортуванню. Для розпакування даних необхідно проробити майже ті ж дії, що і при упаковці. Тому швидкість і вимоги до оперативної пам'яті майже однакові. Архіватори, які використовують даний метод, зазвичай показують високу швидкість і ступінь стиснення для текстових даних.
Безперервні блоки або безперервний режим (Solid mode - безперервний режим)
У багатьох методах стискування початкова ділянка даних або файлу кодується погано. Наприклад, в словниковому методі словник порожній. У методі контекстного моделювання модель не побудована. Коли кількість файлів велика, а їх розмір маленький, загальний ступінь стиснення значно погіршується за рахунок цих початкових ділянок. Щоб цього не відбувалося при переході на наступний файл, використовується інформація, отримана виходячи з попередніх файлів. Аналогічного ефекту можна домогтися простим поданням вихідних файлів у вигляді одного безперервного файлу.
Цей метод використовується у багатьох архиваторах і має суттєвий недолік. Для розпакування довільного файлу необхідно розпакувати й файли, які виявилися на початку архіву. Це необхідно для правильного заповнення словника або побудови моделі. Існує й проміжний варіант, коли використовуються безперервні блоки фіксованого розміру. Втрати стиснення виходять мінімальними, але для добування одного файлу, який знаходиться в кінці великого архіву, необхідно розпакувати тільки один безперервний блок, а не весь архів.
Сегментування
У всіх методах стискування при зміні типу даних власне сам перехід кодується дуже погано. Словник стає не актуальним, модель налаштована на інші дані. У цих випадках застосовується сегментування. Це попередня розбивка на однорідні частини. Потім ці частини кодуються окремо або групами.
Особливо хочеться підкреслити, що існує велика кількість методів стиснення. Кожен метод зазвичай орієнтований на один вид або групу реальних даних. Хороші результати показує комплексне використання методів. Більш докладно з методами стиснення можна ознайомитися, наприклад, на www.compression.ru.
Особливості даних
Ступінь стиснення в основному залежить від вихідних даних. Добре стискаються майже всі попередньо стиснені дані, наприклад, виконувані файли (EXE), тексти (TXT, DOC), бази даних (DBF), прості стиснені зображення (BMP). Обмежено стискаються незжатий звук (WAV), складні стиснені зображення (BMP). Не стискуються майже всі вже стислі дані, наприклад, архіви (ZIP, CAB), стислі документи (PDF), стисла графіка і відео (JPG, GIF, AVI, MPG), стиснений звук (MP3). Їх стиск знаходиться в межах пари відсотків за рахунок службових блоків і невеликий надмірності.
Для стиснення деяких специфічних даних (текст, нестиснені зображення, незжатий звук) існують спеціальні методи і архіватори. Такі архіватори забезпечують високий ступінь стиснення і високу швидкість. Проте так звані універсальні архіватори поступово доповнюються подібними методами. У даний момент тільки для нестисненого звуку існують високоефективні спеціальні архіватори, такі, як OptimFROG, Monkey Audio. Для текстів та зображень найкращі універсальні архіватори показують кращий ступінь стиснення. Наприклад, архів зображень вийде менше, якщо використовувати формат BMP і архіватор WinRK замість спеціалізованих графічних форматів, таких як JPEG2000 (LossLess - стиснення без втрат).
Велика кількість типів даних вже є стислими. Використання архіваторів дає мізерне зменшення розміру. Проте навіть в таких випадках ефективне стиск теоретично можливо. Це обумовлено тим, що в більшості поширених форматів файлів, що використовують стиснення, застосовані не найефективніші методи. Наприклад, в основі формату JPG лежить ентропійні стиск, яке використовується після перетворень Фур'є. Дані кодуються неоптимальними блоками, що обумовлене бажанням зробити формат JPG стійким до пошкоджень і можливості часткового добування інформації. Розкодовано файли JPG за допомогою високоефективних методів, можна домогтися стиснення близько 75% від вихідного файлу (архіватор StuffIt). Власне сам вихідний файл JPG стискається звичайними архіваторами тільки до 96%. Однак подібні маніпуляції з файлами JPG стали можливі тільки недавно і ще не отримали поширення. У більшості випадків стискати вже стислі дані марно.
Які існують архіватори і чим вони відрізняються?
Слід розрізняти власне програму-архіватор, формат архівів і методи стиснення. Навіть один і той же метод стиснення може мати варіанти реалізації. Наприклад, існує більше десятка програм-архіваторів, які можуть створювати архіви у форматі ZIP. У свою чергу дані в форматі ZIP можуть бути стислі різними методами: Deflate, Deflate64, BZip2. Метод Deflate має декілька реалізацій з різною швидкістю і ступенем стиснення (різниця близько 5%). За допомогою цього методу архіватор 7-zip дозволяє створювати архіви у форматі ZIP і 7Z.
Зазвичай архіватори можуть створювати архіви у власному ексклюзивному форматі з використанням своїх оригінальних методів. Наприклад, архіватор RAR дозволяє створювати архіви RAR. У форматі архіву та методах стиснення полягають основні переваги того чи іншого архіватора.
У найпростішому випадку архіватор дозволяє тільки упакувати або розпакувати один файл. Крім власне стиснення даних, сучасні архіватори забезпечують деякі додаткові функції. Можна виділити кілька основних:
-
стиск деяких файлів і цілих директорій;
-
створення що саморозпаковуються (SFX) архівів. Тобто для розпакування архіву програма-архіватор не потрібно;
-
зміна вмісту архіву;
-
шифрування вмісту архіву;
-
інформація для відновлення архіву при частковому пошкодженні і можливість відновлення пошкоджених архівів;
-
розбивка архіву на декілька частин або томів;
-
консольна версія програми для роботи з командного рядка;
-
графічна (GUI) версія програми.
Варто відзначити, що, незважаючи на формальне наявність, реалізація кожної додаткової функції може бути виконана на абсолютно різному рівні.
Крім розходжень у функціональності, можна розбити на дві архіватори групи: асиметричні й симетричні. Асиметричні архіватори вимагають для операції розпакування значно менше часу і оперативної пам'яті, ніж для операції упаковки. Це дозволяє швидко отримувати вміст архіву на малопотужних комп'ютерах. Симетричні архіватори вимагають для операцій упаковки і розпаковування однаковий час і обсяг оперативної пам'яті. Використання таких архіваторів на широкому парку комп'ютерів або для оперативного доступу до вмісту архіву обмежена. Відомий архіватор RAR в якості основного використовує асиметричний словниковий метод стиснення, а для текстів може використовувати симетричний PPM-метод. Таким чином, розпакування архівів RAR, стиснутих за максимальним ступенем стиснення, може бути неможлива на комп'ютерах з обмеженим об'ємом оперативної пам'яті. Всі або майже всі передові архіватори з високим ступенем стиснення є симетричними.
Точної статистики по поширеності архіваторів у мене немає. Я висловлю свою суб'єктивну точку зору на основі особистого досвіду. Безумовно, найбільш поширеним архіватором є ZIP і його модифікації. За своєю поширеністю він значно перевершує найближчих конкурентів. Слідом ідуть RAR і ACE. В останні роки зустрічається архіватор 7-zip. Інших архіваторів і архівів особисто ми не зустрічали. Виняток становлять колись популярні ARJ і LHA. У даний момент вони не актуальні через дуже низького ступеня стиснення.
Незважаючи на дуже скромні дані про поширеність архіваторів, їх існує безліч. Основна маса відноситься до категорії експериментальних і архіваторів з обмеженою функціональністю. Тим не менше кожен з них дозволяє виконувати власне процедуру стиснення даних. Менша поширеність збільшує ймовірність помилок у програмі. До них варто ставитися з певною обережністю. Наприклад, при проведенні тестування була знайдена помилка в архіватор WinRK (PWCM), яку, однак, оперативно виправили.
Тестування максимальному ступені стиснення
У даному тестуванні головною метою було визначити кращий за ступенем стиснення архіватор. Швидкість стиснення була другорядна.
Для різнобічного тестування і виявлення сильних і слабких сторін використовувалося кілька наборів даних, що вимагають різних підходів і методів для хорошого стиснення. Їх розмір обрано досить великим, щоб архіватори з великим розміром словника або більш ефективно використовують оперативну пам'ять могли показати свою перевагу. У стислому при допомоги ZIP вигляді вони займають розмір в районі 15 MB.
Для кожного набору даних зазвичай можна підібрати найбільш оптимальні параметри стиснення. Однак у цьому тестуванні для всіх наборів даних використовувалися єдині параметри та методи, що дають у середньому найкращі результати виходячи з наявності 512 MB оперативної пам'яті. Такий підхід є компромісним. З одного боку, можна оцінити ефективність на різних типах даних, хоча деякі архіватори і не покажуть максимальному ступені стиснення. З іншого боку, в реальності доводиться стискати цілі папки з різноманітними даними, а специфічні параметри можуть впливати як позитивно, так і негативно на стиск даних в цілому. Крім того, підбір оптимальних параметрів не такий простий, займає багато часу і в реальному житті виконується рідко.
Варто підкреслити, що вибір вихідних даних дуже сильно впливає на результати тестування. Наприклад, при використанні текстових (TXT, HTML, DOC, LOG) і мультимедіа (WAV) даних архіватор 7-zip (LZMA) покаже гірші результати, ніж RAR, який має спеціальні методи для таких типів даних. Використання нестисливих даних (JPG, PDF) покаже мізерну різницю між архіваторами з поганою і гарною ступенем стиснення. До речі, багато файли можуть містити як стисливу інформацію, так і не-стисливу. У тому числі файли у форматі DOC і PDF.
Сильний вплив надає і підбір оптимальних параметрів стиснення. Наприклад, за даними www.maximumcompression.com, оптимальні параметри стиснення для кожного набору даних, різниця між 7-zip і RAR близько 3%, що значно менше різниці, отриманої в даному тестуванні.
Тестова система
Тестування проводилося на системі: процесор - Athlon XP 2800 +, оперативна пам'ять - 512 MB.
Набір даних
Дані |
Розмір |
Стиснення ZIP |
Зміст |
bak |
54.4 MB, 13 файлів |
22.6% |
Набір резервних копій. Резервні копії конфігурацій (налаштувань) 1С: Підприємство. Розмір файлів від 3 MB до 9 MB. Файли мають блокову структуру (compound) і містять досить багато схожих і однакових блоків. |
dat |
41.5 MB, 4 файлу |
35.9% |
Складний набір різноманітних даних. Файли, що містять інформацію про ігрових рівнях (картах) в іграх Half-Life 2 і UnrealTurnament 2003. |
dbf |
69.1 MB, 8 файлів |
15.3% |
Файли баз даних. Файли таблиць з юридичної програми і бази даних 1С: Підприємство невеликого підприємства. |
exe |
25.3 MB, 3 файлу |
49.8% |
Виконувані файли. Виконуваний файл з гри Half-Life 2, а так само динамічна бібліотека та виконуваний файл з пакету MS Office XP. |
med |
25.5 MB, 27 файлів |
63.4% |
Мультимедіа файли. Кілька файлів зображень у форматі PSD, кілька текстур з ігор Half-Life 2 і Unreal Tournament 2003 у внутрішньому форматі, кілька файлів нестисненого звуку WAV з гри Half-Life 2. |
txt |
41.4 MB, 472 файлу |
24.9% |
Текстові файли. Текстові файли у форматі HTML російською мовою (16.5 MB), вихідні коди на мовах програмування JAVA, Delphi, Python (24.8 MB). Розмір файлів від 20 MB. |
Архіватори
Під архіватором розуміється програма-архіватор, формат архіву та метод стиснення в комплексі. Далі по тексту для виділення цієї сукупності використовується курсив.
Були обрані найбільш цікаві та яскраві з моєї точки зору архіватори. Для цього протестовані найбільш поширені архіватори та найкращі архіватори за даними http://www.maximumcompression.com/. Деякі архіватори були протестовані, але в підсумкові результати не потрапили. У тому числі 7-zip (PPMd), Compressia, DGCA, DURILCA, EPM, PPMonstr, StuffIt, SBC, WinRK (PPMZ), WinRK (ROLZ). Деякі архіватори були відкинуті після перших попередніх тестів. Це обумовлено більш низькими результатами, без будь-яких істотних переваг. Тим не менш, такі архіватори, як Compressia, DURILCA, EPM, WinRK (PPMZ) є одними з кращих за ступенем стиснення. Такий маловідомий архіватор DGCA володіє майже ідентичною ступенем стиснення, швидкістю і функціональністю з RAR, за винятком можливості змінювати вміст архіву. При цьому він є асиметричним, безкоштовним і вимагає менше оперативної пам'яті. Відзначу, що DGCA зовсім інший архіватор, який має свої недоліки.
Так як не всі протестовані архіватори підтримують можливість стиснення папок, для них набір даних попередньо перетворювався в архів ZIP з нульовим ступенем стиснення.
Архіватор Slim трохи підіграли. Справа в тому, що цей непоганий архіватор може стискати цілі папки, але не використовує безперервний режим стиснення. У результаті на тестовому наборі txt він показав порівняно поганий результат. Якщо ж використовувати архів ZIP з нульовим ступенем стиснення, тоді на тестових наборах exe і med ступінь стиснення виходила значно гірше. Це пояснюється тим, що архіватор Slim використовує спеціальні методи для деяких форматів файлів. Архів ZIP хоч і містить стиснені файли, для Slim подається тільки як архів ZIP. Таким чином, для архіватора Slim тестовий набір txt і bak попередньо перетворювався в архів ZIP з нульовим ступенем стиснення.
Архіватор |
Версія |
Параметри |
7zip |
7-zip 4.16 beta |
Format = 7z, Compression level = Ultra, Compression method = LZMA, Dictionary size = 32 MB, Word size = 255 |
ACE |
WinACE 2.6b4 |
Compression = maximum, Solid = on, V2.0 = on, Dictionary = 4096 KB |
PAQAR |
PAQAR 4.0 |
Compression option = 6 |
RAR |
WinRAR 3.42 |
Compression method = best, Solid = on, Advanced compression parameters = (Все включено або авто), Text compression memory to use = 128 MB, Dictionary = 4096 KB |
Slim |
Slim 0.23 |
Use of memory = 400 MB |
Squeez |
Squeez 4.20 |
Format = SQX, Compression rate = maximum, Dictionary size = 4096 KB, Multimedia compression = on, EXE compression = on |
UHARC |
UHARC 0.6a |
Compression mode = PPM, Dictionary size = 32768 KB |
WinRK |
WinRK 2.05 |
Compression method = PWCM, Model size = 400 MB |
WinUDA |
WinUDA 0.290 |
Mode-3 |
ZIP |
7-zip 4.16 beta |
Format = ZIP, Compression method = Deflate, Word size = 255 |
Функціональність і характеристики архіваторів
Вказані характеристики і функціональність тільки для обраних параметрів. При використанні інших параметрів ці характеристики можуть сильно змінитися. Наприклад, WinRK при використанні стандартного методу PPMZ дозволяє створювати саморозпаковуються (SFX) архіви. Вимоги до оперативної пам'яті в основному визначені обраними параметрами і можуть бути зменшені.
|
7zip |
ACE |
PAQAR |
RAR |
Slim |
Squeez |
UHARC |
WinRK |
WinUDA |
ZIP |
Стиснення директорій |
+ |
+ |
- |
+ |
+ (1) |
+ |
+ |
+ |
+ |
+ (1) |
Створення саморозпаковуються (SFX) архівів |
+ |
+ |
- |
+ |
- |
+ |
+ |
- |
+ |
- (2) |
Зміна вмісту архіву |
+ |
+ |
- |
+ |
+ |
+ |
- |
+ |
- |
+ |
Шифрування |
+ |
+ |
- |
+ |
- |
+ |
+ |
+ |
- |
+ |
Відновлення архіву |
- |
+ |
- |
+ |
- |
+ |
- |
- |
- |
- |
Розбивка архіву на частини |
+ |
+ |
- |
+ |
- |
+ |
- |
+ |
- |
+ |
Консольна версія |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ (3) |
- (4) |
+ |
Графічна (GUI) версія |
+ |
+ |
- |
+ |
- |
+ |
+ (5) |
+ |
+ |
+ |
Асиметричність |
+ |
+ |
- |
- (6) |
- |
+ |
- |
- |
- |
+ |
Вимоги до оперативної пам'яті, MB |
370 |
46 |
320 |
170 (7) |
430 |
55 |
54 |
430 |
200 |
6 (8) |
Безкоштовність |
+ |
- |
+ |
- |
+ |
- |
+ |
- |
+ |
+ |
- Не підтримується безперервний режим. Архіватор не ефективний при стисненні великої кількості маленьких файлів.
- Архіватор 7-zip не підтримує Створення саморозпаковуються (SFX) архівів ZIP, проте така можливість є в багатьох інших архиваторах, які можуть створювати архіви ZIP.
- Архіватор WinRK не має окремої консольної версії, проте існує можливість роботи з архіватором з командного рядка.
- Архіватор WinUDA має консольну версію, але вона використовує більш старий метод стиснення і створює несумісні з графічною (GUI) версією архіви.
- Архіватор UHARC не має окремої версії з графічною оболонкою. Однак існує повнофункціональна стороння оболонка WinUHA.
- Основний метод стиснення архіватора RAR - асиметричний словниковий метод. Однак при максимальному стисканні може використовуватися і використовується симетричний метод для стиснення тексту (PPM).
- Якщо встановити автоматичне визначення розміру оперативної пам'яті для текстового стиснення, то на тестових даних і тестовій системі для архіватора RAR було потрібно всього 64 MB, а ступінь стиснення погіршувалася незначно.
- У більшості архіваторів для створення архівів ZIP потрібно значно менше оперативної пам'яті.
Результати
Ступінь стиснення архіваторів в порівнянні з кращим результатом. Менше - краще
Середня ступінь стиснення архіваторів в порівнянні з кращим результатом. Менше - краще
Середня швидкість стиснення архіваторів в KB / s. Більше - краще
Залежно від особливостей методів стиснення на різних наборах даних отримані трохи різні результати. Наприклад, на даних bak архіватор 7zip показав кращий результат за рахунок дуже великого розміру словника (32 MB). Архіватор PAQAR не має методу сегментування і нераціонально використовує оперативну пам'ять, тому тут він показав не високий результат. З іншого боку, деякі результати зовсім не очевидні. Наприклад, архіватори PAQAR і WinUDA є модифікаціями одного і того ж архіватора PAQ6, причому PAQAR більш прогресивний і використовує більше оперативної пам'яті. Однак на даних bak архіватор WinUDA виявився кращим.
Можна відзначити наступні важливі особливості. Архіви ZIP вийшли в середньому в 2 (!) рази більше, ніж у кращих архіваторів. І це в той час як ZIP далеко не є останнім за ступенем стиснення. Використовувати його для створення архівів з високим ступенем стиснення не можна. Низька швидкість обумовлена використанням програми-архіватора 7-zip з максимальними налаштуваннями. Він створює архіви ZIP з приблизно на 5% кращої ступенем стиснення, ніж оригінальний WinZIP, але робить це значно повільніше.
Архіватори ACE, Squeez і RAR показали приблизно однакові результати з невеликою перевагою в останнього. Тільки на даних txt за рахунок спеціального методу перевагу архіватора RAR істотно. З іншого боку цей метод є симетричним. Тому отримати вміст архіву RAR може виявитися неможливим на комп'ютерах з малим об'ємом оперативної пам'яті. В середньому розмір архівів вийшов на 55% більше розміру архівів, створених кращими архіваторами. Таким чином, називати ACE, Squeez і RAR архіваторами з високим ступенем стиснення не можна. Вони знаходяться ближче до ZIP, ніж до лідерів.
7zip і UHARC вже можна назвати архіваторами з високим ступенем стиснення. В середньому розмір архівів вийшов на 30% більше розміру архівів, створених кращими архіваторами. Проте 30% - це теж велика різниця.
Тільки що залишилися архіватори можна називати архіваторами з високою ступенем стиснення. З них PAQAR і WinRK практично використати майже неможливо. Це пов'язано з надзвичайно низькою швидкістю стиснення - в районі 4-10 KB / s. І слід пам'ятати, що ці архіватори є симетричними, тому швидкість розпакування дорівнює швидкості упаковки.
Тестування при високій швидкості стиснення
У даному тестуванні визначався кращий за ступенем стиснення архіватор при високій швидкості стиснення. Такий режим важливий для частого, оперативного архівування.
Як високій швидкості стиснення була обрана фіксована швидкість 5 MB / s на тестовій системі. Така швидкість виглядає близькою до оптимальною. При подальшому збільшенні обмежуючим фактором може ставати підсистема зберігання даних. У той же час дані розміром 1 GB можуть бути упаковані всього за 3-4 хвилини. Додатково було встановлено обмеження на використання оперативної пам'яті до 32 MB. Таким чином, такі архіватори можна використовувати на системах з обмеженими ресурсами.
Максимальна швидкість стиснення у різних архіваторів різна. Тому параметри стиснення, що впливає на швидкість, підбиралися для досягнення 5 MB / s. Довідково наведені результати при максимальній швидкості стиснення. Допустимі, але надмірно низькі значення параметрів стиснення не використовувалися.
Так як при високій швидкості стиснення різниця між різними архіваторами відносно невелика, необхідність у тестуванні на різних наборах даних відсутня.
Тестова система
Тестування проводилося на системі: процесор - AthlonXP 2800 +, оперативна пам'ять - 512 MB. Для отримання більш точних результатів продуктивність системи була зменшена в 2 рази шляхом зміни частоти системної шини.
Набір даних
Дані |
Розмір |
Стиснення ZIP |
Зміст |
all |
257 MB, 528 файлів |
29.9% |
Включає всі дані, використані в попередньому тестуванні: bak, dat, dbf, exe, med, txt |
Архіватори
Під архіватором розуміється програма-архіватор, формат архіву та метод стиснення в комплексі. Далі по тексту для виділення цієї сукупності використовується курсив.
Склад архіваторів змінився. Архіватори з високим ступенем стиснення не змогли і близько досягти необхідної швидкості в 5 MB / s. В якості еталона був обраний найпоширеніший архіватор ZIP. Багато архіваторів просто не витримали конкуренції з ним і не потрапили до підсумкові результати. Використовувалися лише архіватори, які забезпечують можливість стискати цілі директорії, так як для оперативного архівування така функція є важливою.
Архіватор |
Версія |
Параметри |
7zip |
7-zip 4.16 beta |
Format = 7z, Compression level = Fast, Compression method = LZMA, Dictionary size = 64 КБ (d = 16), Word size = 32 |
ACE |
WinACE 2.6b4 |
Compression = super fast, Solid = on, V2.0 = on, Dictionary = 32 КБ |
IMP |
WinIMP 1.21 |
Compression = Algorithm 2, Block size = 200 KB, Solid unit size = 16 MB, Multimedia filter = on |
RAR |
WinRAR 3.42 |
Compression method = fast, Solid = on, Dictionary = 32 KB |
RAR fastest |
WinRAR 3.42 |
Compression method = fastest, Solid = on, Dictionary = 2048 KB |
Squeez |
Squeez 4.20 |
Format = SQX, Compression rate = normal, Dictionary size = 256 KB, Multimedia compression = on, EXE compression = on |
Squeez fastest |
Squeez 4.20 |
Format = SQX, Compression rate = normal, Dictionary size = 32 КБ, Multimedia compression = on, EXE compression = on |
UHARC |
UHARC 0.6a |
Compression mode = LZP, Dictionary size = 16384 КБ |
ZIP |
Вбудований в Total Commander 6.50 пакувальник ZIP на основі Zlib by Jean-loup Gailly |
Compression (8) |
ZIP fast |
Вбудований в Total Commander 6.50 пакувальник ZIP на основі Zlib by Jean-loup Gailly |
Compression (5) |
Функціональність і характеристики архіваторів
Вказані характеристики і функціональність тільки для вибраних параметрів. При використанні інших параметрів ці характеристики можуть сильно змінитися.
0
|
7zip |
ACE |
IMP |
RAR |
RAR fastest |
Squeez |
Squeez fastest |
UHARC |
ZIP |
ZIP fastest |
Стиснення директорій |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ (1) |
+ (1) |
Створення саморозпаковуються (SFX) архівів |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
- |
+ |
+ |
Зміна вмісту архіву |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Шифрування |
+ |
+ |
- |
+ |
+ |
+ |
+ |
+ |
- (2) |
- (2) |
Відновлення архіву |
- |
+ |
+ |
+ |
+ |
+ |
+ |
- |
- |
- |
Розбивка архіву на частини |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
- |
+ (3) |
+ (3) |
Консольна версія |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
- (4) |
- (4) |
Графічна (GUI) версія |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ (5) |
+ |
+ |
Асиметричність |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
- |
- |
+ |
Вимоги до оперативної пам'яті, MB |
5 |
14 |
8 |
8 |
21 |
8 |
8 |
21 |
5 |
5 |
Безкоштовність |
+ |
- |
+ |
- |
- |
- |
- |
+ |
- (6) |
- (6) |
- Не підтримується безперервний режим. Архіватор не ефективний при стисненні великої кількості маленьких файлів.
- Total Commander 6.50 не підтримує шифрування архівів ZIP, проте така можливість є в багатьох інших архиваторах, які можуть створювати архіви ZIP.
- Total Commander 6.50 підтримує розбивку на частини тільки при упаковці на змінний диск.
- Total Commander 6.50 не має консольної версії для роботи з архівами ZIP, проте така можливість є в багатьох інших архиваторах, які можуть створювати архіви ZIP.
- Архіватор UHARC не має окремої версії з графічною оболонкою. Однак існує повнофункціональна стороння оболонка WinUHA.
- Total Commander 6.50 платний, проте, формат ZIP безкоштовний. Є повністю безкоштовні архіватори.
Результати
Ступінь стиснення архіваторів в порівнянні з кращим результатом. Менше - краще
Швидкість стиснення архіваторів в KB / s. Більше - краще
По ступеню стиснення архіватори показали порівняно близькі результати. Це пояснюється тим, що архіватори, що показали ступінь стиснення гірше ZIP не включалися. З іншого боку, ні один архіватор НЕ показав істотно кращому ступені стиснення при високій швидкості. Варто відзначити, що архіватори RAR fastest і 7zip отримали помітне збільшення швидкості в останніх версіях WinRAR 3.40 і 7-zip 4.16 beta, відповідно.
Для більшості архіваторів, включаючи 7zip, швидкість стиснення в 5 MB / s на тестовій системі виявилася майже граничною. Якщо використовувати їх на комп'ютерах з обмеженими ресурсами, швидкість оперативного архівування може бути неприйнятною.
Кращим вибором у даної категорії є UHARC. З одного боку, різницю в 5% за ступенем стиснення не можна назвати такою вже суттєвою. З іншого боку, решта архіватори йдуть досить щільною групою і навіть така невелика різниця є досягненням.