Нужно ли чистить реестр Windows?
реклама
Я не стал искать на сайте мелкософта, а написал мелкую прогу, с помощью которой и получил ответы на вышеназванные вопросы. Скачать версию 1.10 вместе с исходниками можно по этому адресу. Тем, кто не любит много букв, советую переходить сразу к выводам.
Порядок проведения эксперимента
- После загрузки винды сохраняется снимок окна Process Explorer, показывающий размер занятой памяти. Далее несколько раз выделяется большое количество оперативки. Винда, стремясь удовлетворить запросы программы, урезает свой кэш, а измененные данные, в состав которых предположительно входит реестр, записывает в файл подкачки. После выделения оперативки сохраняются снимки окон с размером занятой памяти и использованием файла подкачки.
- Запускается моя прога, которая делает элементарную вещь: в ключ реестра записываются данные указанного размера. Размер данных превышает 100 MiB, что бы было проще увидеть изменения. Размер значений примерно равен 1 MiB — это максимальный размер для Windows XP. В качестве ключа был выбран HKEY_CURRENT_USER\RegSizeTest — он не используется виндою и это поможет понять, загружаются или нет неиспользуемые никем данные из файла в память.
- Повторение пункта 1 с «распухшим» реестром.
- Удаление данных, записанных в пункте 2, и запуск NTREGOPT для сжатия реестра до нормального размера.
Windows XP Professional 32-bit SP3
Перед записью данных в реестр:
Левый снимок сделан после загрузки винды, средний и правый — после выделения большого количества оперативной памяти. На снимке справа нам нужна цифра % Usage Peak. Это процент использования файла подкачки. Формула для перевода процентов в мегабайты:
Мегабайты = 4000 * проценты / 100.
После записи в реестр 220 Мб данных:
Файл реестра на диске увеличился на величину записанных данных.
Сравниваем Commit (желтый график) на левых снимках. Цифра подросла на те самые 220 Мб, т.е. данные загружены в память, хотя никем не используются. Об этом можно было сказать и не глядя на графики, т.к. во время загрузки винды появилась пауза в пару секунд, во время которой считываются лишние 220 Мб данных. Более интересна цифра Physical (красный график), которая показывает размер занятой оперативной памяти. Она увеличилась не на 220, а 440 Мб, так же как и System cache. Не слишком веселая картина.
Теперь посмотрим на средние снимки. Хорошая новость: цифры Physical одинаковы, значит винда неиспользуемые куски реестра выкинула из памяти. Но куда? В файл подкачки. На правых скриншотах видно увеличение занятого участка свопа на 360 Мб. Это меньше чем 440, но тем не менее распухание реестра в памяти после считывания его из файла очевидно.
Windows 7 Home Premium 64-bit
Перед записью данных в реестр:
После записи в реестр 100 Мб данных:
После записи в реестр 220 Мб данных:
После записи в реестр 500 Мб данных:
По сравнению с хрюшкой есть две новости, хорошая и плохая. Хорошая: реестр в памяти не распухает. Плохая: по непонятной причине не весь реестр сбрасывается в файл подкачки. В моем случае 50 из 100, 210 из 220 и 200 из 500. Получается странная картина: винда урезает system cache и paged pool ядра до минимума, а никому не нужное барахло продолжает пылиться в памяти. Что-то в мелкософте не докрутили…
Влияние размера реестра на скорость загрузки Windows
В реестр Windows 7 x64 были записаны следующие данные:
- Ключ HKEY_CLASSES_ROOT\RegSizeTest — 10 Мб
- Ключ HKEY_CURRENT_USER\Software\RegSizeTest — 10 Мб
- Ключ HKEY_LOCAL_MACHINE\Software\RegSizeTest — 10 Мб
Общий размер реестра увеличился больше чем на треть. Таким примитивным способом был сымитирован мусор, который может накопится после продолжительной жизни операционной системы. Время загрузки увеличилось с 24 секунд до 24,5. Конфигурация компьютера: Core2 Duo 3.9 ГГц, 4 Гб памяти, винчестер старичок Seagate 7200.8 200 Гб.
Выводы
- После загрузки винда считывает все содержимое реестра в память не зависимо от того, будут использоваться его данные или нет.
(Исключение составляет ключ HKEY_LOCAL_MACHINE\COMPONENTS, который загружается только во время обновления компонентов винды службой Windows Modules Installer. Поэтому не забудьте запустить эту службу перед упаковкой улья COMPONENTS с помощью NTREGOPT.) - В случае необходимости, винда сбросит содержимое реестра из памяти в файл подкачки и отдаст освободившуюся память приложениям. Хрюшка способна сбросить все ненужные на данный момент данные, семерка же по непонятной причине часть реестра оставляет в памяти, даже если он никем не использовался с момента загрузки системы.
- Размер реестра слабо влияет на время загрузки винды на современном железе.
А вот на вопрос, стоит ли чистить реестр, каждый должен ответить сам. Только сначала прикиньте, сколько места вы освободите. Ну 10, в клинических случаях 20 Мб. На современном компьютере почувствовать разницу невозможно. А потраченное время на чистку? А борьба с появившимися глюками, которая регулярно заканчивается переустановкой системы? Стоит ли мучить себя и винду? :) Сомневаюсь.
Тема на форуме по обсуждению Windows 7
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают