2010-10-06 5 views
3

Это из любопытства, но я видел несколько (и некоторые из них очень популярных) программ, называемых дефрагментацией реестра. Хотя я вижу, какую выгоду они предлагают, но мне очень любопытно, как именно вы делаете дефрагментацию реестра? Обратите внимание, что я не прошу имя программного обеспечения, просто базовое описание того, как это делается программно. Я понимаю, что есть программа дефрагментации диска от Microsoft. Это то, что они используют? Или есть «дефрагментация реестра» api?Registry Defragmenter

+2

Змеевое масло, вот что я говорю. – ewall

+0

Да, пожалуйста, согласитесь ... Но вы должны уважать качество этого программного обеспечения, потому что им пока не удалось сломать их машины пользователей. Кстати, почему WinFixer сразу пришла мне в голову после чтения «змеиного масла»? : D – Luthfi

+0

См. Http://stackoverflow.com/questions/3060112/rewrite-registry-file-in-windows/3060729#3060729 –

ответ

2

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

Я не знаю ни одного API для этого. Алгоритм - это простая операция переупорядочения и перезаписи, сложная при работе с одновременным доступом Windows.

+0

Вы предполагаете, что они действительно понимают формат файла реестра? Должен запускать мой редактор hex ... :) – Luthfi

+2

Есть инструменты, которые читают необработанные файлы куста реестра. Проверьте некоторые из взломанных паролей с открытым исходным кодом или инструменты судебной экспертизы. – Anders

+1

Формат файла реестра не является слишком сложным. Просмотр необработанного шестнадцатеричного формата непросветляется, но есть несколько плавающих вокруг документов, которые более или менее правильны. См. Http://www.sentinelchicken.com/data/TheWindowsNTRegistryFileFormat.pdf – wallyk

0

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

+0

Первоначально я подозреваю, что тоже. Но, как и упомянутый wallyk, многие утверждают, что они переупорядочивают узлы реестра (в отношении дочерних ключей, расположенных рядом с родителем). – Luthfi

+0

Btw, я видел JkDefrag (теперь MyDefrag) дефрагментацию файлов подкачки. Поэтому обычный инструмент дефрагментации должен иметь возможность дефрагментировать файлы реестра. – Luthfi

0

Ответа на этот вопрос: Просто проанализировать формат файла напрямую и вручную.

Существует еще один возможный путь: Используя RegSaveKey, а затем RegReplaceKey функции, которые используются утилитой резервного копирования Windows.


Как они предотвращают аварии в живой ОС? Простые, они перенаправляют вызовы API к функциям Windows Reg* и обрабатывают их сами. Кэширование любых изменений, которые необходимо записать позже. Было бы также целесообразно провести эксклюзивный замок в файлах кустов.

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