Сучасні архіватори - програмне забезпечення

Які існують архіватори і чим вони відрізняються?

Слід розрізняти власне програму-архіватор, формат архівів і методи стиснення. Навіть один і той же метод стиснення може мати варіанти реалізації. Наприклад, існує більше десятка програм-архіваторів, які можуть створювати архіви у форматі 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. В даний момент вони не актуальні через дуже низького ступеня стиснення.

Тестування максимальному ступені стиснення

В даному тестуванні головною метою було визначити кращий за ступенем стиснення архіватор. Швидкість стиснення була другорядна.

Для різнобічного тестування і виявлення сильних і слабких сторін використовувалося кілька наборів даних, що вимагають різних підходів і методів для хорошого стиснення. Їх розмір обрано досить великим, щоб архіватори з великим розміром словника або більш ефективно використовують оперативну пам'ять могли показати свою перевагу. У стислому за допомогою 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.

Текстові файли. Текстові файли у форматі HTML на російській мові (16.5 MB), вихідні коди на мовах програмування JAVA, Delphi, Python (24.8 MB). Розмір файлів від 20 MB.

Під архіватором розуміється програма-архіватор, формат архіву та метод стиснення в комплексі. Далі по тексту для виділення цієї сукупності використовується курсив.

Так як не всі протестовані архіватори підтримують можливість стиснення папок, для них набір даних попередньо перетворювався в архів ZIP з нульовим ступенем стиснення.

Архіватор Slim трохи підіграли. Справа в тому, що цей непоганий архіватор може стискати цілі папки, але не використовує безперервний режим стиснення. В результаті на тестовому наборі txt він показав порівняно поганий результат. Якщо ж використовувати архів ZIP з нульовим ступенем стиснення, тоді на тестових наборах exe і med ступінь стиснення виходила значно гірше. Це пояснюється тим, що архіватор Slim використовує спеціальні методи для деяких форматів файлів. Архів ZIP хоч і містить стиснені файли, для Slim представляється тільки як архів ZIP. Таким чином, для архіватора Slim тестовий набір txt і bak попередньо перетворювався в архів ZIP з нульовим ступенем стиснення.

  1. Чи не підтримується безперервний режим. Архіватор не ефективний при стисненні великого числа маленьких файлів.
  2. Архіватор 7-zip не підтримує cоздание саморозпаковуються (SFX) архівів ZIP. проте така можливість є в багатьох інших архіваторах, які можуть створювати архіви ZIP.
  3. Архіватор WinRK не має окремої консольної версії, однак існує можливість роботи з архіватором з командного рядка.
  4. Архіватор WinUDA має консольну версію, але вона використовує старіший метод стиснення і створює несумісні з графічної (GUI) версією архіви.
  5. Архіватор UHARC не має окремої версії з графічною оболонкою. Однак існує повнофункціональна стороння оболонка WinUHA.
  6. Основний метод стиснення архіватора RAR - асиметричний словниковий метод. Однак при максимальному стисканні може використовуватися і використовується симетричний метод для стиснення тексту (PPM).
  7. Якщо встановити автоматичне визначення розміру оперативної пам'яті для текстового стиснення, то на тестових даних і тестовій системі для архіватора RAR потрібно всього 64 MB, а ступінь стиснення погіршувалася незначно.
  8. У більшості архіваторів для створення архівів ZIP потрібно значно менше оперативної пам'яті.

Cтр.1: Введення, методи стиснення, особливості даних

Cтр.2: Які існують архіватори і чим вони відрізняються?

Cтр.3: Результати, підсумки

Схожі статті