Які існують архіватори і чим вони відрізняються?
Слід розрізняти власне програму-архіватор, формат архівів і методи стиснення. Навіть один і той же метод стиснення може мати варіанти реалізації. Наприклад, існує більше десятка програм-архіваторів, які можуть створювати архіви у форматі 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 з нульовим ступенем стиснення.
- Чи не підтримується безперервний режим. Архіватор не ефективний при стисненні великого числа маленьких файлів.
- Архіватор 7-zip не підтримує cоздание саморозпаковуються (SFX) архівів ZIP. проте така можливість є в багатьох інших архіваторах, які можуть створювати архіви ZIP.
- Архіватор WinRK не має окремої консольної версії, однак існує можливість роботи з архіватором з командного рядка.
- Архіватор WinUDA має консольну версію, але вона використовує старіший метод стиснення і створює несумісні з графічної (GUI) версією архіви.
- Архіватор UHARC не має окремої версії з графічною оболонкою. Однак існує повнофункціональна стороння оболонка WinUHA.
- Основний метод стиснення архіватора RAR - асиметричний словниковий метод. Однак при максимальному стисканні може використовуватися і використовується симетричний метод для стиснення тексту (PPM).
- Якщо встановити автоматичне визначення розміру оперативної пам'яті для текстового стиснення, то на тестових даних і тестовій системі для архіватора RAR потрібно всього 64 MB, а ступінь стиснення погіршувалася незначно.
- У більшості архіваторів для створення архівів ZIP потрібно значно менше оперативної пам'яті.
Cтр.1: Введення, методи стиснення, особливості даних
Cтр.2: Які існують архіватори і чим вони відрізняються?
Cтр.3: Результати, підсумки