Glashkoff.com

Полезные советы, софт для Windows и Android, создание сайтов на WordPress

Программы

Двойная оптимизация: дефрагментация жесткого диска и реестра Windows

Благодаря моим советам вы получите ускоренные загрузку Windows и запуск программ, повысится отзывчивость системы на действия пользователя. Что может быть лучше?

Сегодня я расскажу о "двойной" оптимизации: о том, как наиболее эффективно провести дефрагментацию жесткого диска в операционных системах Windows Vista и 7 и как дефрагментировать их реестр для еще более шустрой работы компьютера. Совмещение этих методов дает вполне осязаемый результат.

Устаревшую Windows XP рассматривать не буду, потому что материалов на эту тему написано много. А вот с Вистой и Windows 7 есть небольшие пробелы, которые я постараюсь заполнить. Методика должна быть правильной также для Windows 8, но требует проверки.

Что такое дефрагментация?

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

Как видно на картинке, 16% файлов располагаются не оптимально, поделенными на кусочки (красные отметки). Зеленые полосы - места на карте диска, где файлы располагаются упорядоченно, без дробления на части.Также есть фиолетовая область - это расположения MFT, Главной Файловой Таблицы, где хранится вся информация о папках, файлах, их свойствах, сопутствующей служебной информации и даже содержимое самых маленьких файлов. Светло-коричневой полосой обозначен файл подкачки - что это такое, написано здесь. Но это в данном случае не столь важно.

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

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

 

Благодаря дефрагментации механизмам жесткого диска будет легче и быстрее "навестись" на участок, где находится файл, и прочитать его.
В принципе, если вы не хотите вникать во весь этот процесс, для обычной дефрагментации достаточно оставить компьютер включенным на ночь: в Vista и 7 на 1:00 ночи запланирована регулярная дефрагментация. Естественно, в это время компьютером лучше не пользоваться.

О программах для дефрагментации

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

Prefetcher

Причин так полагать несколько. Самая весомая: в Windows существует механизм под названием Prefetcher, который следит за тем, что и когда читается с жесткого диска при загрузке Windows и программ, затем пытается оптимизировать расположение этих данных. Чем более оптимально будут находится файлы, требуемые для загрузки, тем быстрее Windows загрузится и покажет пользователю Рабочий стол. Возникает проблема: неизвестно, как взаимодействуют с Prefetcher'ом сторонние программы дефрагментации. Взаимодействуют ли вообще? Вдруг Prefetcher в очередной раз аккуратно расположит файлы для быстрой загрузки, а якобы "самый лучший" дефрагментатор их куда-то переместит? А вдруг он вообще отключит Prefetcher? Кто тогда будет следить за загрузкой Windows и программ, оптимизируя часто используемые данные? Аналогов Prefetcher'у не существует, между прочим.

Известно точно, что программа Rexco Perfect Disk использует layout.ini, где хранится информация, собранная Prefetcher'ом, но это серьезный платный (25$) продукт для дефрагментации, идущим с большим количеством документации в комплекте.

А что насчет других? Поиск в интернете не дал ничего конкретного. Мне непонятно, почему столько сил потрачено на рекламу дефрагментаторов, но на документацию авторов не хватило.

Оценка фрагментации

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

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

Вывод: лучше не морочить себе голову и пользоваться только стандартным дефрагментатором и на основе стандартного, благо он оттестирован, прост и настроен на автоматическую дефрагментацию. В Windows 7 он значительно улучшен, о чем есть прекрасная статья от сотрудников Microsoft.

Дефрагментация реестра

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

Реестр Windows - это база данных, находящаяся в нескольких файлах. Подробнее об этом в Википедии.

Захламление реестра - одна из причин, почему Windows с годами начинает работает медленнее, все более лениво откликаясь на действия пользователя. Переустановка решит проблему, но есть путь проще.

О мифе очистки реестра

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

Сработает ли мой совет?

Описанную мной в статье методику я проверял в течении пяти лет на Windows XP - именно столько времени (2005-2010 гг.) работала эта ОС без переустановок на домашнем компьютере. Когда время загрузки Windows начинало превышать минуту, я делал все описанное в этой статье, после чего система грузилась примерно вдвое быстрее. Таким образом, система спустя пять лет оставалась все такой же шустрой. Потом я все-таки ее удалил, поставив Windows 7, но это другая история.

Для Windows XP использовались другие программы, но придуманная мною методика не изменилась. Теперь настал тот момент (спустя еще два года параллельного тестирования Windows Vista и 7), когда я могу с уверенностью говорить, что для Windows 7 этот метод тоже подходит. На Windows 8 и 10 не тестировал!

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

Автор не несет ответственности за ваши действия! Всё описанное вы делаете на свой страх и риск!

Очистка жесткого диска

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

Дефрагментация реестра

После очистки диска дефрагментируем реестр. Для этого потребуется программа Auslogics Registry Defrag. Она бесплатна для домашнего использования.

Скачать можно по этой ссылке (5 Мб).

Во время установки, дабы не мусорить в браузере, рекомендую снять эти галочки:

Тулбар Ask.com - довольно неприятная штука, мешающая пользоваться браузером.

Тулбар Ask.com - довольно неприятная штука, мешающая пользоваться браузером.

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

Запустите Auslogics Registry Defrag и нажмите кнопку Анализ. После ожидания можно запустить дефрагментацию:

 

После перезагрузки компьютера появится черный экран с белым текстом:

 

После чего, спустя некоторое время, компьютер снова перезагрузится, вы вернетесь на Рабочий стол с окном отчета:

 

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

Если что-то пошло не так: да, не у всех эта программа работает. Не советую использовать на Windows 8 и 10. Бесплатной альтернативы не нашел.

Дефрагментация жесткого диска: стандартный способ

После реестра дефрагментируем все файлы на жестком диске. В Windows Vista и 7 есть несколько способов запуска этого процесса. Самые простые из них:

  1. Оставить компьютер включенным на ночь - в 1:00 ночи запустится дефрагментация, если это потребуется (на основе анализа программой дефрагментации будет сделан вывод: надо ли оптимизировать жесткий диск или оставить его в покое).
  2. Мой компьютер - правой кнопкой по жесткому диску - Свойства - вкладка Сервис - Выполнить дефрагментацию - дальше все будет понятно.
  3. Меню Пуск - Все программы - Стандартные - Служебные - Дефрагментация диска.

Как ни странно, это все, что нужно для дефрагментации жесткого диска.

Дефрагментация жесткого диска: улучшенная оптимизация

У вышеупомянутых стандартных методов есть один недостаток: нельзя настроить так, чтобы после дефрагментации (которая в особо запущенных случаях может занять компьютер на три-четыре часа) компьютер автоматически выключался. Также неплохо бы дефрагментировать раз и навсегда файлы любого размера, а не только меньше 64 Мб, как это настроено по умолчанию.

Придется совершить три простых действия:

1. Открываем Блокнот (Пуск - Все программы - Стандартные)
2. Вставляем две строчки:

defrag /C /H /U /W
shutdown /f /s

3. Сохраняем документ с именем файла "дефрагментация.bat" (без кавычек). Вместо слова "дефрагментация" может быть что угодно, главное - чтобы заканчивалось на .bat

Таким образом, вы создали пакетный файл. Команды, записанные в нем, выполняются по очереди:

defrag /C /H /U /W запустит дефрагментацию (команда defrag) на всех винчестерах по очереди (ключ /C), с нормальным приоритетом вместо низкого (ключ /H), с отображением прогресса в процентах (ключ /U), с дефрагментацией файлов любых размеров (ключ /W).

shutdown /f /s завершает работу Windows с принудительным закрытием всех программ (ключ принудительного завершения /f я вписал на случай, если какая-либо программа зависнет).

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

Запускается файл нажатием правой кнопкой мыши по нему и выбором пункта Запуск от имени администратора:

Вы увидите это:

 

В окне будет видна информация о процессе дефрагментации. Если возникнет необходимость прервать оптимизацию - просто закройте окно.

Совет: антивирус на время дефрагментации лучше выключить. Это ускорит процесс из-за снижения нагрузки на диск.

Итог

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

Как часто следует проводить дефрагментацию? Я полагаю, что дефрагментацию реестра следует делать раз в три месяца, чаще нет смысла. Дефрагментацию жесткого диска - от недели до месяца. Все зависит от того, как часто вы записываете данные на него. В принципе, как я уже говорил, можно не беспокоиться об этом, лишь изредка оставляя компьютер или ноутбук включенным на ночь. Windows Vista, 7 и 8 сами позаботятся о компьютере. Можно, конечно, пользоваться предложенным мною методом через пакетный файл. Не забывайте, что дефрагментацию реестра придется делать отдельно.Еще парочка интересных моментов:

1. Если у вас SSD диск, то дефрагментация не нужна и даже вредна для срока жизни такого диска. Для ускорения работы SSD диска важно количество свободного места - для нормальной работы необходим минимум 10%, еще лучше - целых 20% свободного пространства.

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

Всем желаю быстрых дисков и скоростной Windows!

Похожие записи:

19 комментариев

  1. Герман

    Лично я дефрагментирую и чищу Windows с помощью программы Wise Disk Cleaner (Wise Registry Cleaner) и хочу сказать что они хорошо справляются со своей работой. Их бы я отнес к бесплатной альтернативе.

    Ответить

  2. Hardman

    CCleaner к сожалению бесплатен только для личного, некоммерческого использования.
    Значит на предприятии его использовать нельзя.
    Как заметил Герман, есть альтернатива «СиКлинеру» это:
    Wise Disk Cleaner
    Wise Registry Cleaner
    В последней не нравится возможность настройки глубины чистки реестра (безопасная чистка)
    По поводу именно дефрагментации рееста, Auslogigs к сожалению тоже нельзя использовать на предприятии.
    Автор, посмотрите пожалуйста на «PageDefrag» от Марка Руссиновича. Эта программа бесплатна доступна для скачки с сайта technet.microsoft.com
    Так же хочу обратить Ваше внимание на утилиту «Contig»

    Ответить

    • Hardman

      Поправлю сам себя.
      PageDefrag не работает с 64 битной системой.
      Auslogiсs – можно использовать на предприятии.

      Ответить

  3. Александр

    Дмитрий, добрый день! Такая штука: делаю дефрагментацию жесткого через пакетный файл, как Вы описали, но в примечании написано: «В статистику фрагментации не включаются фрагменты файло, размер которых первышает 64 МБ.» Это всего лишь означает, что этих файлов не будет в статистике промежуточной или что дефрагментация этих файлов не будет проведена по какой‐то причине?
    Заранее спасибо, надеюсь, Вы увидите этот коммент.

    Ответить

    • Дмитрий Глашков

      Файлы размером больше 64 Мб дефрагментированы не будут. Это не критично для быстродействия. Если у вас есть много свободного времени, можете воспользоваться командой
      defrag C: /v /w /b
      Где /v – подробная информация о ходе оптимизации, /w – дефрагментация всех файлов, в том числе больше 64 Мб, /b – дефрагментация загрузочных файлов.

      Ответить

  4. «G~Lí†çh»

    Упомянутый пару раз в комментах WRG, да и другие тому подобные утилиты не расшифровывают пути в ROT13‐виде, Хотя, некоторые параметры, такие как «IconStreams» типа REG_BINARY, ключа Tray, на одной ОС сохраняют нормально, а на другой в ROT13. Но больше всего меня поразило, когда я «лично» встретил пути к файлам ещё от старого компа (с другим веником) не в привычных REG_EXPAND_SZ, а в REG_BINARY! Всего‐навсего перенёс настройки_офиса.OPS!.. То ли я ни разу за это время не пробовал «клинеры», что не заметил следов офиса, то ли эти самые «клинеры» понятия не имеют об этих ключах... А на 7‐ке я отключил MostRecentlyUsed! Это больше 5 лет я не подозревал, что у меня в реестре смердят останки трупа 8‐летней давности (от одной XP‐шки к другой, от компа к компу по цепочке)!.. MRU‐список я научился отключать позже, и но там‐то сохранились пути со времён XP – D:\Documents and settings\... ну и что‐то про файлы .xsd... т.е. за эти 5 лет офис не удосужился стереть эти отсутствующие пути, раз MRU‐список отключен. После их «затирания» с офисом ничего плохого не стало, значит всё нормально. Но как грамотно вычистить параметр «Settings» в [HKCU\Software\Microsoft\Office\11.0\Word\Data]? Обидно то, что обычный редактор реестра не умеет выполнять бинарный поиск... Да не только офис хранит пути в таких типах! Даже .exe‐шки лучше переименовывать до их первого запуска, а то в реестре сохранятся ещё и их старые имена, так же и в папке Prefetch. А если эти .exe‐шки вовсе удалены, зачем упоминания о них оставлять?! И это особенно касается тех, которые якобы называются портабельными – мало того, что даже в строковых параметрах (как например LowRegistry\Audio\PolicyConfig) оставляет следы (Да и вообще, отключается ли запоминание позиций микшера (звук) для приложений?), так ещё и в REG_BINARY!
    Зачем удалять расширения (FileExts), которые так или иначе создадутся? Прежде чем их убирать, нужно просканировать MFT + вернуть из ROT‐13 (напр. из GnfxZTE.rkr в TaskMGR.exe), если понадобится. В идеале, Shift+del/переименование должно убирать и все упоминания об удаляемом файле из реестра.
    И ещё неизвестно, чем обернётся уплотнение файла куста, они ж разрежённость между опустошёнными разделами не оставят, и когда начнёт опять заполняться, приведёт к фрагментации самого файла куста на диске, и при обращении к тем же разделам, которые вычистили, тормозов станет больше, чем до чистки. Другое дело, если б эти утилиты отключили СБОР этого мусора (чтоб потом чистить было нечего), типа BagMRU Size, политики nofilemru, ещё какие‐нибудь хитрые методы, то их можно было назвать «мудрыми», а то получается, что они на самом деле глупость вытворяют, наживаясь на неопытных людях! Мошенники!... Чтоб их самих за’CLEAN’ило и уплотнило!
    Если так подумать, большая часть реестра состоит лишь из одного мусора. Я бы выкинул всё, кроме SAM (SECURITY), bcd, currentconfig’а и прочих динамических данных... Что касается Classes/Interfaces/TypeLib/CLSid, так вообще пора бы полностью избавиться от «адресации» по UID’ам, от них путаницы больше. Я уже встречал несколько пар полностью совпадающих цифр, но у каждой своё назначение. Куст Components (и ему подобные, типа Windows\CurrentVersion\Installer\*), вообще бездельник и под ногами постоянно путается, поиск замедляет.
    ShellBagsView не умеет редактировать виды папок. И нельзя никак запретить винде запоминать вид и сортировку каждой папки (особенно на «одноразовых» носителях, часто в заблуждение вводит!). В XP было какое‐то подобие «Помнить отображение каждой папки...», но в 7‐ке это пропало. Вот прямо хочется все настройки запихнуть в desktop.ini, и уже там задать сортировку по нужной колонке (в т.ч. и размеры самих колонок, в реестре это параметр «ColInfo» типа REG_BINARY: $0028—$0037: formatID, и после него в $0038 его PropID (а может тут 2 или 4 байта), $003C—$003F: размер этой колонки, и т.д....). Но desktop.ini был хорош только в WinXP, т.к. на 7‐ке убрали {BE098140‐A513‐11D0‐A3A4‐00C04FD706EC}, и теперь фон папки/цвет имён файлов не работает... Наверно единственный полурабочий, но найопаснейшей вариант – прописать в autorun.inf импортирование файла реестра в котором прописаны папки этой флешки в Shell(NoRoam)\BagsMRU и их вид в Shell(NoRoam)\Bags, и то, повезёт, если буква совпадёт...
    «MUICache» (как его вырубить? Особенно для SSD это не нужно вовсе!), и эти мешки могут включаться в подраздел [Local Settings], который относится к UsrClass.dat. С одной стороны, это разумно, но у него слишком маленький изначальный размер, он тоже должен быть более разрежённым!
    evt/etl Журналы можно переместить на другой хард, а вот часть NTFS‐раздела уже никуда не денешь... Ну можно fsutil USN deletejournal, а вот как выпилить ACL из винды? (Сделать как на маке, без всяких ограничений).

    А что творится в ControlSet’ах!... Да их вообще нужно выносить отдельно (выдернуть из файла SYSTEM) и во время работы на одном ControlSet’е винда должна дефрагментировать другой, если этот куст не изменялся пару дней (не устанавливались новые флешки, службы, драйвера, настройки сетевых карт и др.). Это ещё повезёт(!), если сам файл SYSTEM вообще загружается на другой винде! Ведь бывали случаи, когда файл system вообще был повреждён, и никакими методами нельзя подправить параметр \Select\Current, чтобы загрузился другой ControlSet. (т.е. F8 — «загрузка с последней удачной конфигурацией», с повреждённым кустом system не прокатывает). И приходится делать «по‐быстрому» — заменять куст system прямо с папки RegBack!.. (а когда её не было, и вовсе с repair, т.е. с нуля ставить все дрова и т.д. Кстати, куда эта папка в 7‐ке делась?). Лучше б отдельно поместили файлы «current.ini», «LastKnownGood.ini», «Failed.ini»/«Crashed.ini» рядом с кустами‐настройками! Не думаю, что пользователю пришлось бы загружаться с консоли восстановления или вообще LiveCD, чтоб заменить этот файл, т.к. винда сама бы при «крэше» пробовала «по очереди» загружать разные controlset’ы, и в конце‐концов нашла бы исправный или нормально (де)фрагментированный. А когда в винде постоянно загружен куст system, и он становится всё больше, по мере накопления флешек, и прочего мусора, он неизбежно фрагментируется, и в случае «аварии» может повредится. Я уже так несколько компов восстанавливал когда стандартное «средство восстановления не обнаружило проблему» и даже не даёт сделать всё вручную: нет кнопки «показать другие способы восстановления». Ну и как тут заменить файл SYSTEM с папки RegBack? Только через LiveCD/высовывать винт и вставлять в другой рабочий комп!..
    Я уже думал через символические ссылки сделать, только не представляю, как создать ключи‐ссылки с именемами ControlSet404 и ControlSet505 в кусте SYSTEM, ссылающиеся на «соответствующие» файлы, которые должны загрузиться ещё до самого куста SYSTEM :D)...
    Я однажды был вынужден «сломать» ntuser.dat. Ничего страшного вроде как не случилось. Куст кое‐как загрузился, сохранил с него всё что было возможно, применил к новому свежеиспечённому пользователю. Большинство программ у меня настроены были как раз «для всех пользователей», поэтому разницы особой я не заметил (кроме парочки, которые пытались ковырнуть старый путь, вместо %UserProfile% — но тут не только в реестре сохранилось старое имя пользователя, ещё в ini/xml/конфиг.-файлах этих программ). Ну, пришлось заново программы в «пуск» закреплять. В общем, перемен особых не заметил (подумаешь, заменил только один символ для папки пользователя, который пришлось чуть позже править в некоторых местах в реестре, кроме опять же, REG_BINARY, а в .reg‐файле искать нужный набор цифр, которые неизвестно, разбиты ли они на разные строки...). На 7‐ке мне удалось переназначить Local и Roaming папки в одну E:\Prefz. Да, пришлось перемещать файлы через другую винду, т.к. lsass.exe не даёт этого сделать (тем более через Alt+Enter – Расположение папки). Загрузил на хрюше кусты реестра от 7‐ки, подправил пути везде, где встречалось (где‐то часа два или больше повозился, надо ж всё точно), выгрузил. Пробовал перезагрузиться.. Вуаля — Всё работает, и даже пользователь загрузился!.. и блин ещё рядом создалась папка E:\PrefzLow... Ну! Твою‐ж!... Ладно, фиг с ней. Попытался удалить нафиг старую папку AppData — а винда всё равно её «сожрала»... Опять эта проклятая пустая папка Credentials! Ну чего ты туда лезешь? У этой «KnownFolder» совсем другое имя! И как ткнуть ей носом в нужную папку? Можно ли вообще отключить эти кренделя? Я даже отключил запоминание имени последнего пользователя (после выхода из системы вручную набираю имя пользователя), но эта папка всё равно задействуется...
    Вот в феврале заметил, что я каким‐то образом смог научить загружать UsrClass.dat с папки E:\Prefz\Microsoft\Windows. Но заметил уже после того, как сначала сломал загрузку этого файла (что‐то заметное сбрасывалось после перезагрузки). Вернуть загрузку поначалу не получалось (восстановление системы не спасло). Загружал куст в HKEY_USERS этот файл, добавив к SID‐у постфикс _Classes, после выхода из системы меня вообще впустило под системным пользователем!!! — В HKEY_USERS вообще не было многоциферных SID‐ов! ни постфиксов «_Classes» Я уж подумал, что ещё и ntuser.dat сломал! Но каким‐то образом очередное восстановление системы (то ли от этого же системного пользователя, то ли позже, с безоп. режима) помогло! А может не совсем оно, уже не помню («файл и параметры пользователя» как бы «не затрагиваются» при восстановлении системы, поэтому сомневаюсь)... Так вот захотелось и на своём ноуте с вистой так же переместить UsrClass.dat вместе с этими папками (через безоп.режим и от 500‐го админа) – наступил на те же грабли, что в феврале, только с другой стороны: не грузится UsrClass.dat при входе в пользователя, но и в системный профиль не отправляло, восстановление системы тоже не помогло... Вообщем, так и запихнул внаглую содержимое 8‐мегабайтного куста UsrClass.dat в HKEY_CURRENT_USER\Software\Classes. Не зря ж я в нём редактировал ассоциации!.. Но сразу же осёкся, когда заметил, что одновременно с ним ещё и впихнулся подраздел Local Settings\Software\Microsoft\Windows\ (а именно там целых 7 мегабайт мусора!, я даже специально экспортировал как файл куста, чтоб это перепроверить)... Вот уж действительно поспешил. Я думал, что он разрежён до 8 МБ, оказалось, что это был его реальный размер. Надо было сначала копию куста UsrClass.dat загрузить и выкинуть оттуда «мешки» мусора, потом уже заменять им раздел Classes. Папки вроде свой вид сохранили, значит, винда всё это время сохраняла настройки не в раздел Classes\Local Settings! т.е. эти 7 мегабайт вообще бездействовали, не то, что на 7‐ке, в котором отсутствие этого куста заметно сказывалось.
    Теперь не знаю, как грамотно дефрагментировать файл ntuser.dat (или вернуть с какой‐нибудь теневой копии).
    Попытался сделать свой профиль «обязательным» [ProfileList\\Preference] «UserPreference»=dword:0x00000002»), раз содержимое UsrClass теперь у меня «внутри» ntuser.dat, но ожидаемый файл ntuser.man так и не создался, и настройки почему‐то всё равно сохраняются в ntuser.dat (а меньше по размеру он не стал, после стирания этих 7 мегабайт). Хочу сделать его размер хотя бы 8192кб (вместо 11 метров), подскажете, какая прога умеет такое? Или есть какой‐то специализированный редактор реестра, умеющий распределять пустое пространство между разделами? Достал из теневой копии 3‐хметровый (как всегда, «Предыдущие версии не найдены», хотя защита включена, но с помощью ShadowCopyView (того же NirSofer’а) нашёл даже две версии ntuser.dat’а), как его грамотно «растянуть»? Хотя... о чём это я говорю? Найти бы программку, в которой можно было бы вручную распределить пустое пространство хотя бы на диске, не то что в реестре...

    Ответить

    • Дмитрий Глашков

      Скажите, чего именно вы хотите добиться подобными манипуляциями?

      Ответить

      • «G~Lí†çh»

        Это вы о чём?
        А то мне кажется, за такой промежуток времени нереально было прочитать весь мой текст (да ещё с такой узкой колонки, т.к. пролистнув, сразу же забывается только что прочтённый текст...).
        Если вы имеете ввиду разрежённость файла – элементарно, чтоб не фрагментировался на диске (для SSD может и не страшно, но для хардов это заметно). Если вы об «обязательном профиле», так это чтоб заблокировать возможность сохранять все настройки (включая Shell(NoRoam)\BagsMRU, MUICache, пользовательские настройки ассоциаций файлов).
        Т.е. я хочу сохранить только тип папок, настройки которых уже хранятся в Shell(NoRoam)\Bags (не сама папка, а настройки вида определённых типов папки), а в нужных мне папках засунуть desktop.ini, в котором будет указан настроенный тип, чтоб потом винда сразу же выстраивала колонки/сортировку/вид по нему. А все иные папки, которые хранятся на флешках, или в закромах харда (это касается кучей программ, к примеру, штатных) пусть НЕ СОХРАНЯЕТ.
        А если про перемещение папок, гэ.. ну, это чтоб весь мусор был на виду, который остаётся после горе‐программ, запихивающих свои логи и прочие останки во все возможные AppDat’ы Вообще я назло всем объединил три папки в одну: %AppData%, %LocalAppData% в %CommonAppData% (он же %ProgramData%), т.к. надоело вылавливать эти артефакты. А то ведь поселяются всякие «производители‐однодневки», и потом сиди гадай, что за программа её сотворила и есть ли она вообще на компе. Ни одна утилита не скажет, чьё это —-о и с чьей флешки запускалась программа, нас–вшая тут. Редко заглядываю в %LocalAppData%, чаще в %AppData% (который Roaming), поэтому я не всегда улавливаю появление неизвестных папок (могут год‐два там валяться, и я ни разу даже не замечу). А когда всё в одной — сразу заметно, что появилась неизвестная папка, и сразу же идёшь выискивать эту программу. Хорошо, если имя папки такое же как название программы, но ведь чаще всего пишутся какие‐то неизвестные имена/фамилии, и даже несостоявшиеся «товарные знаки» (фирмы‐однодневки)...
        С включенным UAC вообще гораздо интереснее – когда всё засовывается в VirtualStore. Вот так мне нравится больше. Да, согласен, что в таком случае комп не предусмотрен на многопользовательский режим (да и некоторые программы потом отображают дважды одни и те же файлы (например предустановки (Preset’ы) и банки к VST‐плагинам), как было у меня с рабочим столом, когда объединил общий и пользовательский — оооо как много ярлыкооов стало :DDDD В этот раз я папку рабочего стола засунул в «перемещённую из папки Users» другую папку (туда же и Quick Launch и т.п), а папку общего рабочего стола вообще впихнул в корень. И я не приветствую разделения на «общие» и «пользовательские» AppData, т.к. НЕ ВСЕ пользователи работают с одной и той же программой. К примеру, какой‐нибудь пользователь запустил, посмотрел, понял, что это не его, закрыл. А МУСОР‐то в его AppData’х уже создался! А пользователь и не подозревает, что оставил у себя след от запуска этой программы (а такой случай, наверно, был с каждым). Но чаще всего я пропускаю «пополнения» в «Моих документах» (дааа, очень редко туда лажу), и вообще в последнюю очередь её проверяю, из‐за AppData‐паранойи...
        Если разделение настроек нужно, то оно должно быть либо в папке самой программы (в случае с %ProgramFiles%, то Microsoft этого не допускает, да и наследование ACE надо отключаить, и настраивать другие разрешения, да и всё‐равно %SystemDrive% будет засоряться), либо в отдельной папке (что позже облегчит админу резервное копирование настроек всех пользователей разом). Вот как настроена такая папка: все изначально установленные файлы – общие и доступны всем, а к новым файлам, которые создал определённый пользователь, применяется полный доступ (для текущего пользователя), не наследуя при этом разрешения для этой папки. И если другой пользователь попытается загрузить файлы другого пользователя – получит отказ. Всё логично. Зачем чёрт возьми плодить по всему винчестеру одни и те же папки с одними и теми же подпапками, которые чаще всего пустые? Да и вообще, программа потом уже сможет создать подпапку с именем пользователя, и хранить там его настройками, если на то угодно. Чем такой вариант хуже?

        Ответить

      • Дмитрий Глашков

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

        Ответить

      • «G~Lí†çh»

        Ну, такими темпами я точно врежусь куда‐нибудь, и ничего не добьюсь.
        Я хочу ОТКЛЮЧИТЬ ЗАПИСЬ МУСОРА. ВОТ И ВСЯ ЦЕЛЬ!
        Чем меньше операций записи на винчестер производится, тем мне спокойнее. А особенно, если эти записи производятся В РЕЕСТР.
        Теперь понятно? Или ещё вам опять пересказать историю восстановления файлов реестра (Особенно ControlSet’ы)?
        Простите, но разозлили уже... Тут одно из двух, либо Вы явно читаете поверхностно не вдумываясь, либо у Вас нет такого опыта, поэтому не понимаете, о чём речь.

        Ответить

      • Дмитрий Глашков

        Если вы считаете, что программы мусорят, пишите их разработчикам, чтобы исправились. Другого способа заставить работать софт под Windows так, как вы хотите, я не вижу.
        Ваше беспокойство по поводу того, что кто‐то там сохраняет файлы и тем более в реестр, понять не могу. В современных ОС и прикладном ПО много чего происходит каждую миллисекунду. Какая разница, что где‐то несколько нулей стали единицами и наоборот? Вы Process Monitor‐ом смотрели, сколько всего где создаётся, в каких количествах? Зачем тратить нервные клетки из‐за того, что к миллионам файловых записей прибавилось две‐три, незаметных в масштабе всего объёма данных?

        Ответить

      • «G~Lí†çh»

        Мда, надо поправить самого себя, не в реестр, а в файлы реестра. Реестр включает в себя не только «настоящие файлы куста» на диске, но и виртуальные (существуют только в ОЗУ). кстати ключ Control\hivelist тоже существует только в оперативке, сначала заметил это после перезапуска (когда новые записи пропадают), а потом обнаружил, что он может присутствовать только в одном из ControlSet’ов за работу. Всё‐равно разница есть. Да, и в файл может тоже записывать «не сразу» (и я не о кеше самого винчестера).
        А вообще я про утилизацию данных, чтобы на их место записывались другие! Есть uninstaller’ы, которые удаляют целиком весь ключ, связанный с этим приложением, но найдите мне хоть один uninstaller, удаляющий хотя бы одну из записей, созданных виндой об этом приложении (хотя бы msi’шку). Получается, одни записи в реестре затираются чаще всего, а в других застой. Пора прекращать этот дисбаланс, а то эпидемия ожирения и до сюда дошла!
        А BINARY данные, в которых хранятся имена файлов exe‐шек и Prefetch‐файлы создаёт винда! Производители ПО не способны «уследить» за каждым оставленным следом виндой, попробуй найти тот ключ в LowRegistry\Audio\PolicyConfig... Т.е., каждая программа должна работать как Process Monitor, и автоматически обнаруживать, когда винда вписывает имя исполняемого файла в какой‐нибудь куст... И так, каждой программе придётся выполнять одни и те же операции, которые не предназначаются ей самой. Так что, Вы бесполезно пытаетесь «снять обвинения» с винды, и не нужно скидывать её вину на сторонний софт.
        Я вообще за то, чтобы редактор реестра открывал только те данные, которые хранятся в памяти, а не на диске. А то «адаптировали» кусты SYSTEM, SOFTWARE, DEFAULT/ntuser.dat/UsrClasses.dat для просмотрщика реестра, и теперь он начал превращаться в помойку, потеряв своё истинное назначение.
        Про UsrClass.dat, вспомнил, как я тогда решил проблему: тупо удалил само‐созданный почти‐пустой подраздел Classes из самого ntuser.dat, и после перезапуска уже появился _Classes (т.е. винда подгрузила его из «намертво‐зашитого» пути: %LocalAppData%\Microsoft\Windows\UsrClass.dat), и теперь в HKCU\Software появилась ссылка ‘Classes’ на вновь загруженный куст (осталось только 10‐метровый ntuser.dat подменить на старый 3‐хметровый). Как же хочется самому научиться создавать ссылки в реестре...
        Ну, виндой можно подчинить софт, чтобы он создавал свои подпапки в другом месте, при помощи mklink /D, но уже после того, как узнаешь, где оно её создало и какое у неё имя. Фиг с ним, софтом, почему приходится создавать символические ссылки для самой винды, если у неё предусмотрено перемещение папок?

        Ответить

      • Дмитрий Глашков

        Я понимаю, что для вас это важно, но ничего нового не посоветую. За прошедшие шесть суток с начала нашей беседы я так и не понял, на что объективно влияет описанное вами поведение программ и софта. Ощущение беспокойства – субъективный показатель, его нельзя измерить секундомером или бенчмарком, это вопрос психологии, в чём я явно не эксперт. Что касается «дисбаланса» в использовании данных, моя точка зрения такова: это норма и проблемы здесь не вижу.
        У вас другое мнение, вы его ясно озвучили, но я его не разделяю, потому что мой опыт говорит о том, что проблемы в хранении/переиспользовании/обновлении/удалении данных нет. Ещё когда Vista называлась Longhorn, я закрыл для себя вопрос «оптимизации» системы с помощью чистильщиков реестра и подобных программных средств, увеличивая SAM и LOG файлы до нескольких гигабайт, создавая в каталогах миллионы файлов и проверяя результат бенчмарками. AIDA32 и SiSoftware Sandra не показали изменений в производительности, субъективно тоже ничего не менялось. Разве что этап загрузки стал дольше длиться, но это предсказуемый эффект. Это же касается и наличия файлов в любом месте на жёстком диске: даже если в каталоге много файлов, появлялись задержки с открытием в Проводнике и других файловых менеджерах, на скорости прямого доступа к файлам и производительности прикладного ПО это никак не сказалось.
        Windows и прочее ПО работает так, как работает, потому что так надо или так захотел разработчик. Не существует способа сказать программе «вот это туда не сохраняй». Можно лишь запретить запись данных, но в программном коде всё равно выполнится команда на запись, в результате случится ошибка.
        Без обращения к разработчикам ПО (уточняю: Windows в том числе) изменить поведение софта так, чтобы он работал без сбоев, нельзя. Не дизассемблировать же его, это нерационально и противоречит пользовательским соглашениям.
        Может быть, для вас выходом окажется переход на *nix системы. Там вы хотя бы получите возможность изменять исходный код любой программы, подгоняя под свои требования.

        Ответить

  5. Леонид

    Не знал про фрагментацию реестра. Интересно.
    Скачал Regisry Defrag, но сайт virustotal (в т.ч. DRWEB) детектит в нем нежелательное ПО, скорее всего, рекламное, хотя на официальном сайте написано, что установщик не содержит ничего постороннего. В общем, не вызывает доверия данная софтина. Существуют ли другие достойные альтернативы?

    Ответить

    • Дмитрий Глашков

      Альтернативы есть, но достойны ли они – вопрос, на который я не могу дать ответа, так как не проверял.

      Ответить

  6. «G~Lí†çh»

    Я понял Ваши обоснования, но о скорости обращения к конкретным ключам я не говорю. Тут скорее дело в РЕКУРСИИ. Вот вам простой бенчмарк. Выполните поиск какого‐нибудь ключа от HKLM на системе, в которой происходило очень мало удалений/установок, и запускалось максимум 20 программ, и на системе, в которой устанавливалось/удалялось три десятка программ и запускались ещё три сотни, устанавливались драйвера (флешки и прочее железо)...
    Будет разница? Конечно же, будет.
    А Вы мне твердите, что не нужно ничего трогать, и нельзя делать того, что может облегчить даже такую операцию, как ПОИСК по реестру.

    Ответить

    • Дмитрий Глашков

      Во‐первых, рекурсия не при чём. Вот если бы в реестре образовывались указывающие сами на себя записи и поэтому стопорящие поиск, это было бы проблемой. Но к теме разговора это отношения не имеет.
      Во‐вторых, поиск – частный случай, как и влияние на скорость загрузки ОС. Вы часто пользуетесь поиском в реестре? Я – нет. Почему это должно опровергать мои утверждения о том, что на производительность это не влияет? Подобные оптимизации не имеют смысла хотя бы потому, что не экономят время работы за ПК.
      Вот вам практический пример. На жёстком диске моего ПК я храню около сотни проектов с GitHub. В сумме получается более полутора миллионов файлов и часто добавляются новые. Текстовый поиск по их содержимому занимает более 10 минут. Следуя вашей логике, мне нужно искать способ сократить это время, чтобы... не знаю, наверное, потому что это почему‐то неправильно. Но я этим никогда не займусь, потому что:
      1) Не пользуюсь поиском по всем файлам. Что мне там искать?
      2) Если ищу что‐то, то в каталоге проекта, это всегда мгновенно.
      3) Если начну перемещать проекты на диск в ОЗУ или искать другие способы ускорить поиск, а после буду поддерживать такую организацию данных, я потрачу на это время, которое мог бы использовать более продуктивно. Фактически, любая моя попытка ускорить поиск или вообще заморочиться и как‐то «более правильно» хранить проекты, будет идти в минус моего времени. Лучше поработаю лишний час, отвечу на комментарии моих читателей или почитаю книгу.

      Ответить

      • «G~Lí†çh»

        Вы же комментируете ОШИБОЧНЫЙ блок (который нельзя использовать), или вовсе выкидываете (или в другой файл)? Соответственно, если нужно найти конкретную операцию, в поиске нужно указать «не искать в комментариях». А если у вас стоят «перемычки», то это плохо. Если Вы не оставляете ошибок, то я тут никакой связи с темой не вижу! (опять, похоже, Вы до сих пор в неё не въехали). Откуда мне знать Ваши проекты? С чего поиск‐то начинать? Как я узнаю, в каком именно проекте находится то, что мне нужно? Не я же их создавал! Что это за пример такой? Если замечу неиспользуемый мусор, удалю его, и может поиск станет выполняться чуть быстрее.. Но это уже произойдёт после. А ведь можно было это «автоматизировать», и тогда может я нашёл бы что‐нибудь быстрее.

        заморочиться и как‐то «более правильно» хранить проекты, будет идти в минус моего времени

        Мне Вас даже жалко стало, слишком рано истощитесь! Короче, раз уж пошёл разговор не в ту степь, вопрос: сжимаете ли Вы более неиспользуемые проекты средствами NTFS?

        сами на себя записи и поэтому стопорящие поиск, это было бы проблемой. Но к теме разговора это отношения не имеет.

        Как это не имеет? Ладно поиск, но что же тогда за операция RegEnumKey ??? Она что, не вызывает саму же себя пока No_More_Items / NOT_FOUND не наступит? Просто бессмыслено тратить лишнюю «энергию» на бесполезных ключах.

        поиск – частный случай

        Да Вы что? Без поиска, как без клавиатуры! Только благодаря поиску я научился решать сотни проблем, например, когда загружаешь чей‐нибудь завирусованный/затрояненый комп... Это сейчас я уже бессилен, когда мне приносят ноутбук с установленным Dr.Web, чтоб его жаба съела... вместе с паутиной...

        Ответить

      • Дмитрий Глашков

        Полагаю, у нас принципиально отличается мировоззрение на работу с ПК, поэтому я не тот собеседник, которого вы ищете. Засим откланиваюсь. Удачи в дальнейших поисках.

        Ответить

Написать комментарий

Правила:
  • 1. Будьте вежливы. Мат и оскорбления запрещены.
  • 2. Обсуждение нелицензионного софта запрещено.
  • 3. Комментарии с ссылками видны после проверки модератором.

Тема Rowling от Anders Norén. Копирование материалов сайта разрешается только с указанием автора и активной ссылкой на источник.