2010-10-06 62 views
3

這是出於好奇,但我已經看到了幾個(其中一些非常流行)稱爲註冊表碎片整理程序的軟件。儘管我可以看到他們提供的好處,但我很好奇你是如何完成註冊表碎片整理的?請注意,我並沒有要求提供軟件名稱,只是對它如何以編程方式完成的基本描述。我知道微軟有磁盤碎片整理API。這是他們正在使用?或者有「註冊表整理」api?註冊表碎片整理程序

+2

蛇油,這就是我說的。 – ewall 2010-10-06 20:17:55

+0

是啊,有點同意...但是你必須尊重這些軟件的質量,因爲他們迄今爲止設法不打破他們的用戶機器。順便說一句,爲什麼WinFixer在閱讀「蛇油」時立即想到了? :D – Luthfi 2010-10-07 08:22:36

+0

請參閱http://stackoverflow.com/questions/3060112/rewrite-registry-file-in-windows/3060729#3060729 – 2010-10-07 11:22:51

回答

2

雖然磁盤碎片整理將有所幫助,但可以獲得的更重要的速度優勢是安排註冊表節點,以便典型的深度優先搜索將順序訪問的節點放入同一註冊表頁面。

我不知道有任何API。該算法是一種簡單的重新排序和重寫操作,由於處理Windows的併發訪問而變得複雜。

+0

你是否建議他們真的瞭解註冊表文件格式?要啓動我的十六進制編輯器...... :) – Luthfi 2010-10-06 20:46:52

+2

有工具可以讀取原始註冊表配置單元文件。查看一些開源的密碼破解程序或取證工具。 – Anders 2010-10-06 20:52:25

+1

註冊表文件格式不算太複雜。查看原始的十六進制格式是沒有意義的,但是有一些文件漂浮或多或少是正確的。見http://www.sentinelchicken.com/data/TheWindowsNTRegistryFileFormat.pdf – wallyk 2010-10-06 22:03:23

0

我懷疑他們只是用來存儲註冊表信息的文件進行碎片整理。由於註冊表文件在所有正常的Windows操作過程中都處於打開狀態,因此「正常」文件碎片整理工具甚至不會觸摸它們。

+0

最初我也懷疑這一點。但是就像wallyk提到的,許多人聲稱他們會重新排序註冊表節點(就像父子旁邊放置的子鍵一樣)。 – Luthfi 2010-10-06 20:40:38

+0

順便說一句,我已經看到JkDefrag(現在MyDefrag)整理分頁文件的碎片。所以普通的碎片整理工具應該能夠整理註冊表文件。 – Luthfi 2010-10-06 20:44:05

0

答案:大多數直接和手動解析文件格式。

還有另一種可能的方式:使用RegSaveKey然後RegReplaceKey功能,這是由Windows備份實用程序使用。


它們如何防止活OS中的崩潰?簡單來說,他們將API調用重新路由到Windows功能並自行處理它們。緩存稍後需要寫入的更改。在配置單元文件上保存排他鎖也是明智的做法。

我相信碎片整理者比我信任的更多優化器。註冊表優化器可以設置未經測試或損壞的密鑰並啓用破損的功能。隨着它們的大規模商業化,這不是一個問題。但是,依我之前看到的,我不相信他們會以難以確定的方式來摧毀我穩定的系統。