Как прочитать сжатый compact файл. Влияние ntfs-сжатия на скорость чтения файлов

Как и предыдущие версии операционной системы, Windows 10 поддерживает NTFS-сжатие файлов для экономии пространства на диске. В отличии от ZIP-архивации, NTFS-сжатие не требует от пользователя вкладывать необходимые файлы в отдельный архив и затем извлекать их для использования. Система сжимает файлы, уменьшает занимаемое пространство, но при этом объекты готовы к использованию в любой момент и не требуют дополнительных действий.

NTFS-сжатие файлов работает за счет встроенных в систему инструментов и не требует от пользователя загрузки или установки дополнительного программного обеспечения. Сжать файлы в Windows 10 можно как за счет средств Проводника, так и за счет Командной строки. Последний метод более сложный ввиду необходимости запоминать команды и дополнительные параметры. Здесь вы найдете оба метода.

Эффективность сжатия файлов прямо пропорциональна размеру объекта. Иными словами, чем больше файл, тем больше места на диске система может сэкономить путем сжатия. При этом время сжатия так же само будет прямо пропорционально размеру сжимаемого файла. Этот простой, но вполне эффективный метод сжатия будет полезен тем, у кого место на компьютере сильно ограничено, но при этом надо постоянно хранить локально большие файлы. Если вы относитесь к таковым пользователям, тогда вам также будет полезно почитать инструкцию « ». Она поможет вам выкроить несколько лишних гигабайт свободного дискового пространства. Кроме того, посмотрите инструкцию по для освобождения места на системном диске уже после установки операционной системы.

Обратите внимание, что сжатые файлы и папки в Windows 10 отображаются с дополнительной иконкой с двумя стрелочками. Это поможет вам ориентироваться в том, какие файлы сжатые, а какие нет.

Как сжать файлы в Проводнике Windows 10


После завершения применения изменений вы сможете оценить эффективность сжатия. На скриншоте видно, что до сжатия папка занимала 1.08 Гб на диске, а после сжатия объем уменьшился до 0.99 Гб на диске. В данном случае экономия составила примерно 8%, что вполне неплохо.

Как разжать файлы в Windows 10

Делается все точно так же, как и сжатие файлов.


Сжатие файлов через Командную строку в Windows 10

Нажмите Win + R и введите cmd . В открывшемся окне командной строки вам надо ввести команду compact /# “полный путь к файлу или папке” . В зависимости от необходимого результата, вам надо будет воспользоваться следующими командами:

  • Compact /c полн ый путь к файлу или папке” – сжатие одного файла или папки. Если сжимаете папку, тогда сжатие не затронет вложенные в нее папки.
  • Compact /u полн ый путь к файлу или папке” – восстановление одного файла или папки.
  • Compact /c /s полн ый путь к папке” – сжатие папки со всеми вложенными в нее файлами или папками.
  • Compact /u /s полн ый путь к файлу или папке” – восстановление обычного размера папки со всеми вложенными в нее папками или файлами.

Дополнительные команды для утилиты compact .exe включают в себя:

  • /C - Сжимает указанные пользователем файлы или папки. Каталоги будут обозначаться таким образом, чтобы все новые файлы тоже сжимались. Исключаться будут объекты с параметром /EXE.
  • /U - Распаковывает указанные файлы. Каталоги маркируются так, чтобы добавляемые позже файлы не были сжаты. Если указан параметр /EXE, будут распакованы только файлы, сжатые как исполняемые файлы; если этот параметр пропущен, будут распакованы только файлы, сжатые в системе NTFS.
  • /S - Выполняет указанную операцию над файлами в выбранном каталоге и всех его подкаталогах. По умолчанию используется текущий каталог.
  • /A - Отображает файлы с атрибутами "скрытый" и "системный". По умолчанию эти файлы пропускаются.
  • /I - Продолжает выполнять указанную операцию даже после возникновения ошибок. По умолчанию выполнение программы COMPACT прерывается при возникновении ошибки.
  • /F - Принудительно сжимает все указанные файлы, даже если некоторые из них уже сжаты. По умолчанию сжатые файлы пропускаются.
  • /Q - Выводит лишь наиболее существенные сведения.
  • /EXE - Использование сжатия, оптимизированного для исполняемых файлов, которые часто считываются и не изменяются. Поддерживаемые алгоритмы: XPRESS4K (наиболее быстрый, по умолчанию), XPRESS8K, XPRESS16K и LZX (наиболее высокая степень сжатия).

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

Перед тем как начинать процесс сжатия файла или папки, очень важно понять все получаемые от этого выгоды, и разобрать сами доступные в Windows 7 методы сжатия:

  • NTFS сжатие файла
  • Сжатие (zip) папки.

Сжатие данных уменьшает размер файла, минимизируя его избыточные данные. В текстовом файле избыточными данными часто бывают определенные знаки, например, символ пробела или общие гласные (e и a), а также строки символов. Сжатие данных создает сжатую версию файла, минимизируя эти избыточные данные.

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


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

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

  • Сжатие - атрибут для файла или папки.
  • Папки и файлы на томе NTFS, либо сжаты, либо нет.
  • Новые файлы, созданные в сжатой папке сжимаются по умолчанию.
  • Состояние сжатой папки не обязательно отражает состояние сжатия файлов в этой папке. Например, папки могут быть сжаты без сжатия его содержания, и некоторые или все файлы в сжатой папке можно распаковать.
  • Работа с NTFS-сжатыми файлами без их распаковки, так как они распаковываются и снова сжимаются без вмешательства пользователя.
  • Если сжатый файл открыт, система автоматически его распаковывает.
  • При закрытии файла Windows снова его сжимает.
  • Для упрощения распознавания, NTFS сжатые имена файлов и папок отображаются в другом цвете.
  • NTFS-сжатые файлы и папки остаются в сжатом виде, только на NTFS томе.
  • NTFS сжатые файлы не могут быть зашифрованы.
  • Сжатые байты файла недоступны для приложений; они видят только несжатые данные.
  • Приложения, открывающие сжатые файлы могут работать с ними, как с не сжатыми.
  • Сжатые файлы не могут быть скопированы в другой файловой системе.

Примечание: для управления сжатием NTFS можно использовать компактный инструмент командной строки.

Перемещение и копирование сжатых файлов и папок.


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

Копирование внутри раздела раздела NTFS.

Как изменяется состояние сжатого файла или папки, если вы его копируете внутри раздела NTFS? При копировании файла или папки внутри файловой системы NTFS раздел, файл или папка наследует состояние сжатия целевой папки. Например, если скопировать сжатый файл или папку в распакованную папку, файл или папка будут автоматически распакованы.

Перемещение внутри NTFS раздела.

Что происходит с состоянием сжатия файла или папки при перемещении в пределах раздела NTFS?

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

Копирование или перемещение между NTFS разделами.

Что происходит с сжатыми файлом или папкой при копировании или перемещении его между разделами NTFS?

При перемещении файла или папки между разделами NTFS, файл или папка наследует состояние сжатия целевой папки. Поскольку Windows 7 рассматривает движение между разделами как копирование с последующей операцией удаления, файлы наследуют состояние сжатия целевой папки.

При копировании файла в папку, которая уже содержит файл с тем же именем, скопированный файл принимает атрибут сжатия целевого файла, независимо от состояния сжатия папки.

Копирование или перемещение между FAT и NTFS томами.

Что происходит с сжатием файла, который копируется или перемещается между FAT и NTFS томами?

Сжатые файлы, скопированные в раздел FAT становятся не сжатыми, так как FAT тома не поддерживают сжатие. Однако, если вы копируете или перемещаете файлы из раздела FAT в раздел NTFS, они наследуют атрибут сжатия папки, в которую вы их копируете.

При копировании файлов, файловая система NTFS вычисляет дисковое пространство, основанное на размере несжатого файла. Это важно, потому что файлы во время процесса копирования не сжаты, и система должна гарантировать достаточное пространство. Если Вы пытаетесь копировать сжатый файл в раздел NTFS, а у него нет свободного места для несжатого файла, перед вами появиться сообщение об ошибке, которое вас уведомит о недостаточности дискового пространства для файла.

Использование сжатия файлов в разделах с файловой системой NTFS позволяет экономить дисковое пространство системы. Сжатие и распаковка файлов выполняются ”на лету” и прозрачно для пользователя. Формат команды:

COMPACT ] ] ] ]

Параметры командной строки:

/C Сжимает выбранные файлы. Каталоги маркируются так, чтобы добавляемые позже файлы также были сжаты, если не указан параметр /EXE. /U Распаковывает указанные файлы. Каталоги маркируются так, чтобы добавляемые позже файлы не были сжаты. Если указан параметр /EXE, будут распакованы только файлы, сжатые как исполняемые файлы; если этот параметр пропущен, будут распакованы только файлы, сжатые в системе NTFS. /S Выполняет указанную операцию над файлами в выбранном каталоге и всех его подкаталогах. По умолчанию используется текущий каталог. /A Отображает файлы с атрибутами "скрытый" и "системный". По умолчанию эти файлы пропускаются. /I Продолжает выполнять указанную операцию даже после возникновения ошибок. По умолчанию выполнение программы COMPACT прерывается при возникновении ошибки. /F Принудительно сжимает все указанные файлы, даже если некоторые из них уже сжаты. По умолчанию сжатые файлы пропускаются. /Q Выводит лишь наиболее существенные сведения. /EXE Использование сжатия, оптимизированного для исполняемых файлов, которые часто считываются и не изменяются. Поддерживаемые алгоритмы: XPRESS4K (наиболее быстрый, по умолчанию) XPRESS8K XPRESS16K LZX (наиболее высокая степень сжатия) /CompactOs Установка или запрос состояния сжатия системы. Поддерживаемые параметры: query - запрос состояния сжатия системы. always - сжатие всех двоичных файлов ОС и установка для системы состояния сжатия, которое может изменить только администратор. never - распаковка всех двоичных файлов ОС и установка для системы состояния отсутствия сжатия, которое может изменить только администратор. filename Указывает имя файла, имя каталога или шаблон имен файлов.

Параметры командной строки могут различаться для разных версий ОС Windows. так например, параметры /EXE и /CompactOS отсутствуют в версии утилиты compact.exe для Windows 7-8 и могут использоваться только в среде Windows 10 и более поздних.

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

compact - отобразить информацию о сжатии файлов в текущем каталоге.

compact E:\TEMP\*.* - отобразить информацию о сжатии всех файлов в каталоге E:\TEMP.

Пример отображаемой информации:

Просмотр каталога E:\TEMP\ Новые файлы, добавляемые в этот каталог, не будут сжаты. 593: 593 = 1,0 к 1 C crab.css 301106: 233472 = 1,3 к 1 C arj.exe 529629: 529629 = 1,0 к 1 C beepcodes.zip 30478146: 30363648 = 1,0 к 1 C crow.avi 206401536: 129277952 = 1,6 к 1 C erd50.iso 1609: 1609 = 1,0 к 1 C proxylist.txt Всего файлов: 6, каталогов: 1. Из них сжато: 5, не сжато: 1. Данные объемом 237 712 619 байт сохранены в 160 406 903 байт. Степень сжатия 1,5 к 1.

compact /C E:\TEMP\*.iso - включить сжатие всех файлов с расширением.iso в каталоге E:\TEMP.

compact erd50.iso - отобразить информацию о состоянии сжатия файла erd50.iso в текущем каталоге.

compact /Q E:\TEMP\erd50.iso - отобразить минимальную информацию о состоянии сжатия файла erd50.iso

compact /C E:\TEMP\ - включить сжатие всех файлов в каталоге E:\TEMP

compact /C /S E:\TEMP\*.* - включить сжатие файлов для каталога E:\TEMP\ и всех его подкаталогов.

compact /CompactOS:query - отобразить состояния сжатия для ОС Windows 10. Возможно использование команды без подпараметра query - compact /CompactOS .

compact /CompactOS:never - отключить сжатие двоичных файлов для ОС Windows 10. При выполнении данной команды выполняется распаковка всех сжатых файлов и отключается режим сжатия. Операция может занимать довольно продолжительное время. Для включения или выключения режима сжатия требуются права администратора системы.

compact /CompactOS:always - включить сжатие файлов для ОС Windows 10. При выполнении данной команды выполняется упаковка всех файлов и включается режим сжатия. Операция может занимать довольно продолжительное время.

compact /C /EXE:LZX C:\distr\*.* - для Windows 10. Выполнить сжатие, оптимизированное для всех файлов, которые часто считываются и не изменяются в каталоге C:\distr с применением алгоритма, обеспечивающего максимальную степень сжатия.

compact /U /EXE:LZX C:\distr\*.* - для Windows 10. Распаковать файлы, сжатые применением алгоритма LZX , обеспечивающего максимальную степень сжатия.

compact /U /EXE:XPRESS4K C:\distr\*.* - для Windows 10. Распаковать файлы, сжатые с применением алгоритма XPRESS4K , обеспечивающего максимальное быстродействие.

В этой статье хотелось бы поговорить о функции Windows, позволяющей существенно сэкономить место на жестком диске – функции сжатия. Впервые встроенная функции сжатия появилась в ОС Windows XP, в последующих версиях Windows эта функция неизменно присутствует. Поддерживаются два типа сжатия:

  • NTFS сжатие на уровне файловой системы
  • Сжатые ZIP-папки (Compressed Folders)

Сжатие NTFS – это архивирование на уровне файловой системы NTFS, выполняется оно прозрачно драйвером файловой системы. NTFS сжатие может применяться к файлам, папкам и дискам целиком. Для этого каждому сжатому объекту присваивается специальный атрибут сжатия (compression state), который указывает сжат файл или нет. У этого типа сжатия есть свои особенности:

  • Сжатие NTFS возможно только на разделах с файловой системы NTFS
  • При доступе к сжатому файлу или папке осуществляется прозрачная декомпрессия, т.е. пользователь не видит различий между сжатыми и обычными файлами в Windows, и спокойно может копировать, добавлять или удалять файлы в сжатой папке.
  • Для отображения объектов, сжатых на NTFS, применяется специальная цветовая схема (по умолчанию, в проводнике имена сжатые файлов отображаются синим цветом)
  • Скорость доступа к сжатому файлу ниже, т.к. систем требуется некоторое время на его распаковку (для современных систем такая операция сложностей не создает, так что задержка практически не видна невооруженным взглядом).
  • Сжатие более слабое, чем при использовании ZIP-папок или других архиваторов, но скорость его выполнения гораздо выше

Сжатые ZIP-папки подразумевают архивацию файлов встроенной в систему функцией создания zip архивов. Сжатые папки очень похожи на обычные, иногда даже можно забыть, что на самом деле работаешь с ZIP-архивом. Особенности ZIP-папок в Windows:

  • Сжатые ZIP-папки можно создавать как на томах NTFS, так и на томах FAT.
  • Из сжатой Zip-папки можно открывать файлы и даже запускать некоторые приложения
  • Zip-папку можно передать на другой компьютер, где ее можно распаковать любой другой программой сжатия.
  • Для сжатия файла нужно просто переместить его в сжатую Zip-папку. Когда файл перемещается их такой Zip-папки в обычную, он автоматически распаковывается.

Как сжать папку в Windows

Чтобы включить NTFS сжатие на каталоге, необходимо в проводнике Windows Explorer щелкнуть по нему правой кнопкой мыши и выбрать свойства.

Затем нажать на кнопку Advanced (Другие) и отметить опцию Compress contents to save disk space (Сжимать содержимое для экономии места для диске ) и нажать дважды OK.

Система может спросить: хотите ли вы применить изменения только на папку или также и на все подкаталоги (обычно выбирается 2 пункт, Apply changes to this folder, subfolders and files )

В результате имя сжатого каталога и его содержимое будет отображаться в проводнике синим цветом, что означает – к объекту применено NTFS сжатие.

Сравним степень сжатия встроенными средствами Windows

Сравним уровень сжатия различными инструментами, для чего из одной и той же папки (в моем случаем папка содержит документы Excel и Word)сначала создадим zip-архив (правой кнопкой мыши по каталогу Send to->Compressed(zipped) folder), затем на том же каталоге включим NTFS компрессию.

Оригинальный размер папки – 145 М б

Размер zip-папки 27,4 Мб

Размер папки со включенным NTFS сжатием – 51 Мб (значение поля Size on disk в свойствах сжатой папки)

Т.е. в моем случае сжатие в папку ZIP наиболее эффективно и уменьшило размер каталога, занимаемый им на диске на 81% (в то время, как NTFS сжатие всего на 65% ).

Однако со сжатием нужно быть осторожным, оно может привести к ошибке, описанной в статье . Кроме того, если включить сжатие на каталоге с большим (очень большим) количеством файлов, то проверка такого диска (chkdsk) может занять ОЧЕНЬ большой период времени, а если , то держитесь, рабочий стол появится не скоро..

Сжимать, или не сжимать, вот в чем вопрос. ” – к таким отнюдь не праздным размышлениям в стиле шекспировского “Гамлета” приходит в конце концов наверно каждый, кто исчерпал все иные способы освобождения места на жестком диске.

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

В очередной раз я обратился к ntfs сжатию когда переносил операционную систему Windows 7 на твердотельный накопитель небольшого размера. В своем исходном виде загрузочный раздел Windows категорически не мог поместиться на маленьком 60 (55,8) гигабайтном SSD.

Для решения этой задачи пришлось предварительно выполнить целый комплекс мероприятий. Почитать о них можно в цикле статей под общим названием “Перенос Windows 7 на твердотельный диск небольшого объема”. Первая публикация цикла находится .

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

Забегая вперед, так как статья на эту тему еще только готовится к публикации, скажу, что вслед за Windows 8 и Windows 8.1 в Windows 7 буквально два дня назад наконец появились средства для обслуживания содержимого WinSxS. Следите за публикациями блога. Для этого достаточно .

Тогда для уменьшения размера WinSxS было принято решение сделать ntfs-сжатие уникальных файлов в этой папке. Описание технологии такого выборочного сжатия и готовый скрипт можно найти в .

Сжатие файлов в папке WinSxS позволило высвободить больше 2 ГБ дискового пространства. Вместе с этим захотелось оценить как повлияла компрессия на скорость дисковых операций. Тем более, что твердотельный накопитель, ради которого все это делалось, уже и так использует встроенное сжатие данных (Intel SSD 520 Series).

Методика измерения скорости чтения диска

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

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

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

Почему CristalDiskMark намеряет в этом случае практически одинаковые показатели сказать трудно, но для того, чтобы получить более “жизненные” результаты, была использована следующая методика.

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

Для практической реализации такого простейшего алгоритма нужно иметь блочное устройство со скоростью записи на порядок выше тестируемого источника.

Первоначальная идея копировать файлы на фиктивное устройство «nul » после первых же измерений показала свою полную несостоятельность.

Для оценки скорости чтения данных с механического HDD в качестве целевого диска в принципе можно было бы использовать твердотельный накопитель. Но как измерить скорость чтения с самого SSD?

В конечном счете для того, чтобы создать очень быстрое устройство на которое можно копировать файлы, была использована программа Dataram RAMDisk . Эта замечательная программа позволяет создавать диски в свободной оперативной памяти компьютера. В ее бесплатном варианте объемом до 4 ГБ. Для наших целей этого более чем достаточно.

В повседневной практике Dataram RAMDisk может с успехом использоваться в компьютерах с большой оперативной памятью и 32-разрядной операционной системой Windows. Если в незадействованной операционной системой части RAM создать такой быстрый диск и перенести на него некоторые критичные для скорости чтения/записи файлы, то поведение компьютера можно заметно оживить.

После создания RAM-диска, для измерения времени считывания (копирования) файлов из некоторой заданной папки, можно воспользоваться, например, командой:

robocopy X:\Testfiles\ R:\Testfiles\ /E /XJ X: – буква исследуемого диска;
R: – буква, присвоенная RAM-диску;
Testfiles – папка с тестовыми файлами.

Команда robocopy самостоятельно подсчитает объем данных V files , затраченное время T read и среднюю скорость операций копирования C read .

Для сравнения использовались команды copy и xcopy :

@echo off
format R: /FS:NTFS /Q
@echo %time%
for /R "X:\Testfiles" %%i in (*) do (
copy /Y %%i "R:\"
rem xcopy %%i R:\ /Y
@echo %time%
pause>nul

Зная общий объем файлов V files в тестовой папке вычислялась скорость чтения данных с диска:

C read = V files / T read

Все достаточно очевидно. Кроме того можно отметить, что результаты, полученные при использовании разных команд, оказались одинаковыми.

Тестовое оборудование, тестируемые накопители, наборы данных

Компьютер

Тестирование скорости накопителей проводились на компьютере следующей конфигурации:

Процессор: Intel I7 950, 3,07 GHz
Системная плата: Intel DX58SO
Системная память: 6 Gb (3 x 2 Gb DDR3-1080 MHz)
Видеоадаптер: AMD ATI Radeon HD 5700 Series (1024 Мb)
Операционная система: Microsoft Windows 7 Корпоративная SP1

Тестируемые накопители

Всего в тестах участвовали четыре жестких диска: два полноразмерных (3,5”) диска Seagate Barracuda, быстрый диск для ноутбука (2,5”) Seagate Momentus и твердотельный накопитель Intel 520 Series. Основные параметры дисков представлены в следующей таблице:

Модель / параметры

ST3500418AS Seagate Barracuda 7200.12

ST31000528AS Seagate Barracuda 7200.12

ST9250410AS Seagate Momentus 7200.4

SSDSC2CW060A Intel 520 Series

N
Скорость вращения шпинделя 7200 7200 7200
Объем накопителя, Гб 500 1000 250 60
Формат накопителя 3,5” 3,5” 2,5” 2,5”
Буфер, Мб 16 16 16
Интерфейс SATA-II 3 Гб/с SATA-II 3 Гб/с SATA-II 3 Гб/с SATA-III 6 Гб/с
Поддержка NCQ Есть Есть Есть Есть

Тестовые наборы данных

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

Данные / характеристики

N
Количество файлов 616 399 3684 1
Несжатый объем, Мб 166 642 616 691
Сжатый объем, Мб 121 640 428 686
Коэффициент сжатия 1,37 1 1,44 1

Как видно из представленной таблицы, половина из выбранных для тестирования данных практически не меняет свой размер после ntfs-компрессии. К ним относятся форматы файлов со сжатием, такие как фотографии в форматах jpg и raw (nef ) и образ диска iso .

Надо сказать, что найти на компьютере в необходимом количестве реальные данные с большим коэффициентом ntfs-сжатия оказалось очень сложно. К таковым можно было бы смело отнести все чисто текстовые форматы, но по объему их крайне мало. А документы, например, Microsoft Office изначально имеют сжатый формат. Электронные книги так же часто представлены с сжатом виде.

Данные, обозначенные как WinSxS , представляют собой файлы, произвольно выбранные в папке C:\Windows\winsxs . Как понятно из предисловия к статье, выбор содержимого этой папки для тестирования совершенно не случаен.

Результаты измерения скорости чтения ntfs-сжатых данных

Еще несколько слов о процедуре тестирования.

Выбранные для тестирования данные размещались в четырех соответствующих папках на испытуемом носителе, после чего выполнялась его дефрагментация штатным дефрагментатором Windows (defrag).

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

Все измерения повторялись 5 раз. Опять же для исключения влияния кеша, во всех последовательных измерениях использовались разные данные.

По окончании измерения скорости чтения несжатых данных они сжимались после чего повторно выполнялась дефрагментация носителя и проводились измерения по описанной выше методике.

Dataram RAMDisk

Предварительно была сделана попытка оценить скорость чтения/записи сжатых и несжатых данных на диске RAMDisk с помощью уже упомянутого в начале статьи популярного теста CristalDiskMark . Однако результаты измерений в обоих случаях оказались практически идентичными. То есть, если верить этому тесту, то получается, что ntfs-сжатие диска не оказывает никакого влияния на его скоростные характеристики. А это совершенно не верно.

На первой диаграмме представлены скоростные характеристики RAMDisk. Считываемые данные записывались на этот же диск в отдельную папку. Так как отдельно подсчитать скорость чтения и записи в этом случае не представлялось возможным, условно было принято, что для несжатых данных они равны. Время считывания ntfs-сжатых данных рассчитывалось как разность общего времени операции и половины времени операции чтения/записи несжатых файлов.

При измерении таким способом влияние ntfs-сжатия оказалось весьма существенным и отличающимся для разных типов данных. Наибольшая деградация скорости чтения (40% и 54% от первоначальной) получилась, соответственно, для файлов электронных книг и фалов из папки winsxs. То есть для «сжимающихся» в результате ntfs-компрессии файлов.

Никакого особого практического смысла данные измерения RAM-диска не несут. Однако, они показывают, что для всех типов файлов RAM-диск пригоден в качестве целевого накопителя.

ST3500418AS Seagate Barracuda 7200.12 (500 Гб)

По сравнению с другими механическими дисками, участвовавшими в тестировании, 500 гигабайтный однодисковый Seagate Barracuda ST3500418AS неожиданно показал удивительные результаты в смысле его отношения к ntfs-сжатым данным. Падение скорости чтения компрессированных данных имело место лишь при копировании файлов фотографий (64% от первоначальной).

К сожалению, если впоследствии дело дойдет до тестирования скорости записи, то этот накопитель участвовать в нем уже не будет. К нему в полной мере можно отнести выражение “Сгорел на работе”. Некоторое время назад без каких бы то ни было предупреждений этот HDD умер в момент раскрутки шпинделя. Наверное его сгубила его же шустрость.

ST31000528AS Seagate Barracuda 7200.12 (1 Тб)

Следующим протестированным представителем семейства Seagate Barracuda явился вдвое более “толстый” ST31000528AS . Особенностью этого диска явилось то, что он очень хорошо справился с несжимаемыми файлами (“photo”, “iso”), однако “провалился” на сжимаемых (“books”, “winsxs”).

Наиболее интересный вывод, который можно сделать из сравнения этих двух HDD одного семейства, это то, что они абсолютно с разной скоростью читают компрессированные данные. Это действительно удивительно и полностью идет вразрез с устоявшимися, и кажущимися весьма логичными, представлениями о том, что быстрый процессор решит все проблемы ntfs-сжатия. На самом деле оказалось, что очень много зависит от самого жесткого диска.

ST9250410AS Seagate Momentus

Третьим номером был протестирован быстрый HDD для ноутбуков Seagate Momentus ST9250410AS (250 Гб). Главной особенностью этого диска является скорость вращения шпинделя 7200 об/мин. Этот накопитель продемонстрировал удивительно ровное, за исключение “photo” (как и в случае с ST3500418AS), отношение к сжатым данным.

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

Еще одной совершенно необъяснимой особенностью всех полученных результатов явилось увеличение скорости чтения несжимаемого файла большого размера (“iso”) у всех механических дисков. Возможно, что в данном случае имеет место некое несовершенство принятой методики измерения, но найти его я не смог. Буду крайне признателен, если кто-то предложит свое объяснение этого феномена.

SSDSC2CW060A Intel 520 Series

Последним протестированным жестким диском, который на самом деле и инициировал проведение тестирования, явился твердотельный накопитель Intel 520 Series SSDSC2CW060A .

Особенностью этого накопителя является то, что установленный в нем контроллер SandForce SF-2281 уже использует сжатие данных и можно предположить, что этот диск должен хуже всех остальных справиться с ntfs-сжатием.

Как видно из полученных результатов, чтение плохо сжимаемых данных (“photo”, “iso”) действительно осуществляется медленнее (соответственно 80% и 66% от скорости чтения несжатых файлов). А вот сжимаемые ntfs-сжатые файлы (“books”, “winsxs”) вопреки ожиданиям читаются даже быстрее. Учитывая, что на практике именно последние, как мы уже говорили, скорее всего будут подвергнуты ntfs-компрессии, это обстоятельство не может не радовать.

Выводы

Так сжимать, или не сжимать? Можно ли на основании полученных данных дать однозначный ответ на этот вопрос? Однозначный, видимо, не получится.

Во-первых, тестирование проводилось на одном единственном компьютере с достаточно быстрым процессором.

Если эта тема окажется интересной читателям, то тестирование можно продолжить для других типов компьютеров.

Во-вторых, как неожиданно оказалось, очень много в этом случае зависит как от типа данных, так и непосредственно от жесткого диска.

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

Три из четырех протестированных накопителей, включая и SSD, продемонстрировали очень хорошие результаты при чтении ntfs-компрессированных сжимаемых данные, представленных наборами “books” и “winsxs”. Имело место или незначительное снижение скорости чтения или даже ее увеличение.

Как это ни странно, хуже всех с этой задачей справился накопитель большой емкости ST31000528AS Seagate Barracuda 7200.12 (1 Тб). С другой стороны, включать ntfs-сжатие на жестком диске такой емкости вряд ли кому-то потребуется, так как в этом случае справится с проблемой нехватки свободного места на загрузочном разделе Windows можно другими способами. Например, простым увеличением размера соответствующего раздела.

Возвращаясь , с которой все началось, а именно к использованию выборочного ntfs-сжатия уникальных файлов в папке WinSxS, можно смело рекомендовать этот способ для освобождения места на жестком диске. Не смотря на то, что в Windows наконец появились средства для очистки содержимого WinSxS, о которых мы поговорим в следующей статье, одно другому не помешает.

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

Дело в том, что так как ntfs-сжатие осуществляется сегментами по 64 килобайта, оно заметно фрагментирует данные. В сжимаемых файлах появятся «разреженные» кластеры. По данным самой Microsoft ntfs-сжатие создает в среднем один «разреженный» кластер на каждые 64 кБ. Нетрудно подсчитать, что после ntfs-сжатия на каждый гигабайт будет приходиться 16384 «разреженных» кластера.

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