Windows 注册表 - 为什么(以及在哪里)存在?

Fre*_*ton 13 windows windows-registry performance

正在与一位朋友谈论注册表,并意识到我不记得 Microsoft 试图解决的问题导致它出现。我知道这与太多不同的程序将他们的偏好存储在太多不同的地方/方式有关,但正如我所说,这似乎不是一个非常有力的论据。一定有更好的理由。

问题的 B 部分是:注册表是如何存储的,以至于搜索起来很慢?看来无论你的处理器有多快,你的硬盘有多快(我刚拿到一个Intel SSD),搜索一个VIRGIN XP系统的注册表仍然需要几秒钟的时间……大约需要10年的时间前。什么奇妙的技术使 Windows 的这方面不受 CPU 和存储进展的影响?

澄清:我认为大多数人都误解了我的问题。在我看来(我可能完全错了),现在进行注册表搜索所需的时间几乎与十年前一样长,鉴于处理速度的进步,我觉得这令人惊讶。我不提倡注册表编辑(尽管这些年来我所做的工作比我预期的要多)而且我并没有抱怨它需要太长时间 - 我只是想知道为什么搜索速度没有“在过去 10 年左右的时间里,它似乎随着处理能力的增加而扩展。我意识到注册表对我来说就像这个奇怪的黑盒子,因此这个问题。

Jos*_*ved 12

注册表存储在多个文件中。维基百科上的位置有很好的描述。

如果您按预期使用,搜索不会很慢。它基于值名称和它们的路径进行索引,因此加载和保存值很快。搜索所有内容是它从来没有打算做的事情,对于非标准用例的东西来说,“免费”索引的维护成本太高了。


nik*_*nik 10

维基百科是这样的细节很不错,
读取Windows注册表中的其他操作系统等价物-

要了解有关注册表如何工作的更多信息,请阅读Mark Russinovich的优秀笔记,网址

还有一篇关于另一个观点的 CodingHorror 文章
Windows 注册表是个好主意吗?(另请阅读那里的评论)。