NTFS+LZX: Новый метод сжатия файлов в Windows 10

в 11:26, , рубрики: Песочница, метки: , , , ,

Думаю, многие тут знакомы с понятием файловой системы со сжатием. Возможно, вы даже пользовались btrfs или сжатием ntfs.

Для тех, кто «не в теме»: Немного про сжатые папки в Windows.

В Windows 10 была добавлена новая реализация сжатия файловой системы — LZX, и вроде бы очень интересная переспективая открылась, но почему-то никто данную возможность не афишировал, и нигде о ней не написано. Поэтому наткнуться на данное чудо можно лишь случайно, что со мной и произошло.

Сравнение с обычным сжатием NTFS

+ степень сжатия гораздо выше, почти на уровне zip.

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

ВНИМАНИЕ! Файлы, сжатые в Windows 10 алгоритмом LZX, будет невозможно открыть во всех предыдущих версиях Windows!

Целесообразность

LZX, также как и стандартное сжатие NTFS, при мощности современных многоядерных процессоров абсолютно прозрачен для пользователя и при чтении не сказывается на производительности.

Исходя из особенностей данного вида сжатия, он не подходит для динамически записываемых файлов, то есть временные папки сжимать нет смысла. Но в случае со статическими файлами, которые всегда используются только на чтение, например, директория с установленными программами или играми, системные папки, а также просто файловые хранилища.

Примеры сжатия при помощи LZX
Размер: изначальный
На диске: сжатый

NTFS+LZX: Новый метод сжатия файлов в Windows 10 - 1

Шах и мат, разработчиков игры явно не волновало занимаемое место:

image

Как видите, новое сжатие может дать очень ощутимую экономию места, в зависимости от сжимаемых данных.

Стоит учесть, что точно не имеет смысла сжимать файлы изображений, музыки или видео, и тем более архивы, так как они сами уже внутри находятся под сжатием.

Использование

Сжатие производится при помощи консольной утилиты compact, входящей стандартную в поставку Windows.

Сжатие одного файла:

compact /c /a /exe:lzx "<путь к файлу>"

Сжатие всех файлов в указанной директории и всех поддиректориях:

compact /c /s /a /i /exe:lzx "<путь к директории>*"

или же

cd /d "<путь к директории>"
compact /c /s /a /i /exe:lzx

Примечание: если файлы до этого уже были сжаты другим сжатием NTFS, то нужно добавить флаг /f в команду, иначе они будут проигнорированы.

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

Важно! О сжатии системной директории Windows

Настоятельно не рекомендуется сжимать весь системный диск или папку Windows целиком. На это есть две причины:

  1. Папка WinSxS уже находится под аналогичным сжатием.
  2. Сжатие загрузочных файлов из папки boot, в том числе файла bootmgr из корня диска, приведет к невозможности запуска системы.

Сжимать в системной директории рекомендуется только особо «жирные» папки, например System32, SysWOW64, Installer, Assembly, Microsoft.NET, Fonts итд, главное не трогать вышеобозначенные вещи (boot, WinSxS)!

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

compact /u /a /exe "<путь к файлу>"
compact /u /a /s /exe "<путь к директории>*"

Справку по всем возможным флагам утилиты можете посмотреть через compact /?

Заключение

Объемы носителей информации неуклонно растут и экономия места на них потихоньку уходит в прошлое.

Но данный метод сжатия, в первую очередь, оценят владельцы SSD, место на которых пока ещё ограничено и стоит довольно дорого. Плюс даже некоторый прирост в скорости чтения, так как диску придется считывать меньше данных (но если у вас слабый ЦП, то прирост, скорее всего, нивелируется затратами времени на разжатие данных).

У некоторых это, возможно, даже станет поводом для перехода на Win10.

Автор: устаршой по званию

Источник


  1. Basegame:

    После парочки тестов, теперь понятно, почему мелкомягкие не афишировали внедрения LZX – он хоть и лучше сжимает LZNT1 (стандартное сжатие в NTFS), но некорректно отображает объём сжатых данных.
    Ну знаете, очень трудно ужать уже сжатый 50 гигабайтный архив FreeArc в 1,8 гига.
    Не, сперва меня заинтересовал сжатый файл san_francisco.dat ( Watch_Dogs2\data_win64\worlds\san_francisco ), который чудом сжался с 7.32 Гб до 2.43 Гб, хотя 7zip и FreeArc смогли ужать лишь до ~5,9 Гб этот файлик, вот тогда у меня и закралось подозрение…
    В общем, тут пару примеров
    1) Сколько байт данных
    2) Сколько отображается, что занимает на диске
    3) Сколько на самом деле занимает (вычисляется путём количества освобождённого места после удаления всего каталога)
    ======
    Assassin’s Creed Origins
    52,4 ГБ (56 309 377 783 байт)
    32,3 ГБ (34 694 205 440 байт)
    В итоге
    48.3 ГБ (51 874 299 904)
    ======
    Fortnite
    18,0 ГБ (19 352 298 965 байт)
    8,36 ГБ (8 982 855 680 байт)
    В итоге
    8,36 ГБ (8 984 076 288)
    ======
    FarCry5
    29,4 ГБ (31 594 339 261 байт)
    11,1 ГБ (11 966 234 624 байт)
    В итоге
    27.1 ГБ (29 146 284 032)
    ======
    Counter-Strike Global Offensive
    15,4 ГБ (16 610 449 044 байт)
    8,09 ГБ (8 694 157 312 байт)
    В итоге
    8,09 ГБ (8 695 832 576)
    ======
    Deus Ex Mankind Divided
    51,8 ГБ (55 709 326 633 байт)
    20,4 ГБ (21 933 654 016 байт)
    В итоге
    34.42 ГБ (34 820 132 864)
    =====
    Just Cause 3
    51,2 ГБ (55 004 319 222 байт)
    40,4 ГБ (43 395 002 368 байт)
    В итоге
    40,4 ГБ (43 392 256 320)

    ===========================
    Как видно, только у части папок отображается корректно размер занимаемый на диске, так что не сильно радуйтесь “освобождённому” пространству

  2. Валик:

    кто нибудь измерял самый главный показатель – скорость распаковки, оптимизация алгоритма оной..?
    то есть, насколько данный алгоритм позволяет “ускорить” сравнительно медленный жесткий диск? и “ускоряет” ли вообще? а если нет, то он и даром не нужен..

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js