Непрерывный архив
Непрерывный архив (англ. solid archive) — файловый архив, упакованный таким образом, что все сжимаемые файлы рассматриваются как один непрерывный поток данных. При упаковке каждого файла (кроме первого) используется информация, содержащаяся в предыдущих файлах. В обычных архивах каждый файл сжимается и хранится независимо от других.
К преимуществам непрерывного архива следует отнести потенциальное увеличение степени сжатия. При этом чем меньше средний размер файлов, чем больше самих файлов и чем более файлы схожи между собой по содержимому, тем выше степень сжатия.
Недостатки непрерывного архива:
- изменение непрерывного архива (то есть добавление или удаление из него файлов) происходит медленнее, чем обычного, поскольку архиватору придётся полностью пересобрать архив;
- извлечение отдельного файла из середины или конца архива происходит медленнее, чем из его начала, так как для этого приходится распаковывать все предыдущие упакованные файлы (архиватор RAR/WinRAR имеет настройку, задающую положение файла в архиве, чтобы, например, файлы readme могли распаковаться в первую очередь);
- в случае повреждения архива не удастся извлечь не только файл, на данные которого приходится повреждение, но и все файлы, следующие после него, поэтому при создании непрерывных архивов есть смысл добавлять данные для восстановления.
Многотомные и самораспаковывающиеся архивы также могут быть непрерывными.
Архиваторы, позволяющие создавать непрерывные архивы:
- WinRAR/RAR
- 7-Zip
- FreeArc
- Tar в комбинации с компрессорами gzip, bzip2, lzma (xz) и т. д.; для распаковки даже файлов из начала нужно распаковать весь архив.
- WinAce
При использовании комбинаций Tar с компрессорами с малым размером словаря эффективность от использования непрерывных архивов снижается. В частности, очень малым словарем обладает gzip (32 КБ) и недостаточно большим — bzip2 (менее 1 МБ)[1].