Сжатый и распакованный размер файла: в чём разница и как это использовать на практике

У любого файла есть два размера: тот, который он занимает на диске в текущем виде, и тот, который он займёт после распаковки, если хранится или передаётся в архиве. Разница между ними может быть огромной: текстовый документ иногда уменьшается в десять раз, а видеофайл — практически не изменяется. Понимание этой разницы помогает правильно планировать место на диске, оценивать время загрузки и передачи файлов и не удивляться, почему «архив весил 100 МБ, а распаковался в гигабайт».

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

Что означают эти два размера

Распакованный (исходный) размер — это объём данных, который файл занимает, когда программа может работать с ним напрямую. Если вы открываете документ в редакторе, картинку в просмотрщике или базу данных в СУБД, вы работаете именно с распакованными данными.

Сжатый размер — это объём после обработки алгоритмом сжатия. Алгоритм ищет повторяющиеся фрагменты и закономерности в данных и записывает их компактнее. Например, вместо того чтобы хранить тысячу одинаковых символов подряд, достаточно сохранить запись «символ X, 1000 раз». Чем больше в данных повторов и структуры, тем сильнее они сжимаются.

Важно понимать: сжатие бывает двух принципиально разных типов.

  • Без потерь (lossless). После распаковки данные полностью совпадают с исходными. Так работают ZIP, RAR, 7z, GZIP, PNG для изображений, FLAC для звука. Подходит для документов, кода, таблиц, архивов.
  • С потерями (lossy). Часть информации отбрасывается ради гораздо большего выигрыша в размере. Так работают JPEG, MP3, MP4/H.264 и H.265. Распакованный файл уже не равен исходному, но для восприятия человеком разница часто незаметна.

Когда говорят о сравнении сжатого и распакованного размера, чаще всего имеют в виду сжатие без потерь, потому что именно там оба числа относятся к одному и тому же содержимому.

От чего зависит коэффициент сжатия

Коэффициент сжатия — это отношение распакованного размера к сжатому. Он определяется прежде всего типом содержимого, а не настройками программы.

Тип данных Типичное поведение при сжатии без потерь Почему так происходит
Текстовые документы, CSV, логи, HTML, XML, JSON Сжимаются очень хорошо, часто в несколько раз Много повторяющихся слов, тегов, пробелов и шаблонных конструкций
Исполняемые файлы программ Сжимаются умеренно Есть повторы, но много «случайных» машинных инструкций
Фотографии в JPEG, видео, музыка в MP3 Почти не сжимаются Они уже сжаты с потерями; оставшиеся данные выглядят как шум
Уже заархивированные файлы (ZIP внутри RAR) Практически не сжимаются повторно Повторяющиеся закономерности уже устранены первым архиватором
Зашифрованные данные Не сжимаются вообще Шифрование специально делает данные неотличимыми от случайного шума

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

Влияют и другие факторы:

  • Алгоритм. Современные архиваторы (например, форматы 7z или Zstandard) обычно дают лучший результат, чем старый классический ZIP, особенно на текстах.
  • Уровень сжатия. Более высокий уровень означает более тщательный поиск закономерностей: файл получается меньше, но упаковка идёт дольше и требует больше оперативной памяти.
  • Размер файла. Маленькие файлы сжимаются хуже, потому что алгоритму нужен объём данных, чтобы найти повторы и «раскачаться».
  • Структура данных. Отсортированные таблицы, однотипные записи базы данных и логи со стандартным форматом строк сжимаются заметно лучше, чем перемешанные.

Когда важно смотреть на сжатый размер

Сжатый размер определяет затраты на хранение и передачу. Ориентироваться на него нужно в следующих ситуациях.

  • Ограничения на загрузку файлов. Почтовые сервисы, формы на сайтах и мессенджеры обычно ограничивают именно фактический размер передаваемого файла. Архивация позволяет уложить большой набор документов в лимит.
  • Трафик и скорость канала. Чем меньше байт передаётся, тем быстрее загрузка. Поэтому веб-серверы отдают текстовые ресурсы (HTML, CSS, JavaScript) в сжатом виде: браузер получает сжатые данные и распаковывает их сам.
  • Долгосрочное хранение резервных копий. Бэкапы редко открывают, зато хранят долго. Здесь экономия места от сжатия напрямую снижает расходы на дисковое пространство.
  • Стоимость облачного хранилища. Тарифы обычно привязаны к занятому месту, поэтому сжатие холодных данных — простой способ сократить плату.

Когда важнее распакованный размер

Распакованный размер определяет, что произойдёт с системой после восстановления данных. На него стоит смотреть в таких случаях.

  • Планирование места под распаковку. Классическая ошибка: на диске свободно ровно столько, сколько весит архив, а распаковать его некуда. Всегда проверяйте, сколько места займёт содержимое.
  • Работа программ с данными. Приложение, которое открывает большой файл, будет использовать память и диск пропорционально распакованному объёму, а не размеру архива.
  • Оценка производительности. Распаковка требует времени и процессорных ресурсов. Если данные нужны постоянно, постоянное сжатие-распаковка может замедлить работу сильнее, чем сэкономить место.
  • Лимиты систем. Некоторые сервисы и инструменты ограничивают распакованный размер загружаемого архива отдельно от самого файла архива. Это частая причина ошибок при импорте больших дампов баз данных или миграции сайтов.

Как проверить оба размера

Способ зависит от операционной системы и формата, но общий принцип одинаков: архиватор показывает и размер каждого файла внутри архива, и итоговый объём содержимого.

  1. Откройте архив в программе-архиваторе, не распаковывая его.
  2. Посмотрите колонки с размером: обычно там указаны и «размер» (распакованный), и «упакованный» (сжатый) для каждого элемента.
  3. Найдите строку итогов: большинство архиваторов показывают суммарный распакованный размер всего содержимого.
  4. Сравните его со свободным местом на целевом диске, добавив запас хотя бы 10–20% на служебные нужды файловой системы.

Для одиночного несжатого файла достаточно посмотреть его свойства в проводнике или файловом менеджере. Обратите внимание на различие между «размером» и «размером на диске»: второе число округляется вверх до размера кластера файловой системы, поэтому тысячи мелких файлов могут занимать на диске заметно больше, чем их суммарный фактический размер.

Практические сценарии: что делать в каждой ситуации

Нужно отправить много документов по почте

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

Освобождаете место на диске

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

Настраиваете резервное копирование

Для бэкапов сжатие почти всегда оправдано: данные читаются редко, а занимают место постоянно. Исключение — если вы резервируете уже сжатые медиафайлы: тогда включайте режим «только сохранять без сжатия», чтобы не тратить процессорное время впустую.

Переносите сайт или базу данных

Здесь критичен распакованный размер. Дамп базы данных в SQL-формате сжимается очень сильно, и архив может весить десятки мегабайт при гигабайтах содержимого. Перед импортом убедитесь, что принимающая система поддерживает такой распакованный объём и что на диске достаточно места.

Оптимизируете веб-страницы

Текстовые ресурсы сайта стоит отдавать в сжатом виде — это стандартная практика, которая ускоряет загрузку для посетителей. А вот изображения JPEG/WebP и видео дополнительно сжимать на сервере бессмысленно: они уже сжаты, останутся только лишние затраты процессора.

Типичные ошибки и как их избежать

  • Оценивать содержимое архива по его размеру. Архив на 50 МБ может содержать и 60, и 600 МБ данных. Перед распаковкой всегда смотрите суммарный распакованный размер.
  • Повторно архивировать уже сжатое. Это тратит время и не даёт экономии. Если файлы JPEG, MP4, PDF со встроенным сжатием или другой архив — просто упакуйте их в режиме хранения.
  • Игнорировать требования к памяти при высоком уровне сжатия. Максимальные уровни некоторых алгоритмов требуют значительного объёма оперативной памяти; на слабой машине упаковка может занять очень долго или завершиться ошибкой.
  • Забывать о времени распаковки. Для данных, к которым нужен мгновенный доступ, сильное сжатие превращается в постоянные задержки. Компромисс — средний уровень сжатия или быстрые современные алгоритмы.
  • Путать потерю качества с работой архиватора. Сжатие без потерь никогда не ухудшает файл. Если после архивации и распаковки фото стало хуже — дело в другом действии, например в пересохранении с потерями, а не в самом архиве.

Компромиссы: место, скорость, процессор

Выбор степени сжатия — это всегда баланс трёх вещей. Более сильное сжатие даёт меньший файл, но требует больше времени на упаковку и распаковку и больше ресурсов процессора. Более слабое сжатие ускоряет работу ценой дополнительного места.

Рациональная стратегия выглядит так:

  1. Определите приоритет: место, скорость или простота доступа.
  2. Если данные читаются часто — выбирайте быстрое сжатие или отказывайтесь от него вовсе.
  3. Если данные лежат «на полке» месяцами — используйте высокий уровень сжатия, время одной распаковки окупится экономией места.
  4. Проверьте на одном небольшом наборе файлов, какой уровень даёт приемлемый результат, прежде чем обрабатывать терабайты данных.

Частые вопросы

Может ли сжатый файл оказаться больше исходного?

Да, если данные плохо сжимаются (уже сжаты или зашифрованы). К сжатым данным добавляется служебная информация архива, и итоговый размер становится немного больше. В этом случае используют режим хранения без сжатия — он полезен только для объединения файлов в один.

Почему два файла одного типа сжимаются по-разному?

Потому что коэффициент зависит от содержания, а не от расширения. Скриншот текстового документа в PNG сожмётся сильно, а снимок пёстрого пейзажа — слабо. Лог с однотипными строками сожмётся лучше, чем файл со случайным набором символов того же размера.

Что такое «степень сжатия 3:1»?

Это значит, что распакованные данные в три раза больше сжатых: архив на 100 МБ содержит около 300 МБ информации. Показатель удобен для быстрой оценки, но он справедлив только для конкретного набора данных и конкретного алгоритма.

Нужно ли сжимать файлы перед загрузкой в облако?

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

Как понять, что файл уже сжат и его не стоит архивировать?

Ориентируйтесь на формат: JPEG, PNG, WebP, MP3, AAC, MP4, MKV, PDF (частично), DOCX и XLSX (это тоже ZIP-контейнеры) уже содержат сжатые данные. Повторная упаковка даст экономию в лучшем случае единицы процентов.

Что запомнить и с чего начать

Главный принцип: сжатый размер отвечает за хранение и передачу, распакованный — за работу с данными и требования к системе. Прежде чем архивировать или распаковывать, ответьте на три вопроса: сколько места займёт результат, сколько времени займёт обработка и будут ли данные нужны в ближайшее время.

Конкретный следующий шаг: откройте любой свой крупный архив или папку с данными и посмотрите оба размера через архиватор. Соотнесите распакованный объём со свободным местом на диске — это займёт минуту и убережёт от самой распространённой ошибки с переполнением диска посреди распаковки.

PEFile.ru