ntuser.dat可以删除吗(c盘哪些文件可以删除)

ntuser.dat可以删除吗(c盘哪些文件可以删除)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

注册表是Windows操作系统的一个核心数据库。记载着机子的硬件信息。系统配置。用户配置等各种“高大上”的数据。对于Windows用户来说。如果不会手动修改个注册表项。简直都不好意思自称“电脑高手”。“高手”们热衷于通过regedit提升电脑运行速度。DIY系统配置。把0改成1。把1改成2。狂拽炫酷;而包括我在内的“低手”们只得望其项背。据说保不齐能把系统改瘫了。轻易不敢碰得。但有一项技能是可以轻松get的。那就是使用第三方软件清理注册表垃圾。这么做也多少能提升一点逼格。毕竟还有好多人不知道注册表这东西呢!

可正当大家一致认为清理注册表有助于提高系统性能。正当我们抱着这份信念每天happy地做着清理时。有人却发出了“清理注册表毫无用处”的观点。唯一的逼格被否定了。坑爹呢这是!我抱着辩证批判的态度读完那些帖子。发现其中并未给出真正令人信服的原理。那么问题来了。我到底该信啥?

注册表垃圾。就是指软件卸载后残留在注册表内的无用项。如果不进行清理。各种软件装了卸装了卸。日积月累。注册表在体积上肯定会变大。关键是。注册表会变得多大?变大后对系统性能的影响有多少?为了搞清楚这些问题。首先需要理解注册表的组成结构。

内存中的注册表

也许你每天清理着注册表垃圾。其实却根本不知道注册表这个“隐秘而伟大”的东西到底在哪。徽标键+R。运行regedit。Look!这就是传说中的注册表!其实准确地说这时打开的只是注册表编辑器。以一种便于查看和修改的形式呈现着注册表数据。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

注册表编辑器

考虑到有朋友可能从未接触。简单普及一点基础知识:注册表组织结构好比文件系统。其中键的概念相当于文件夹。键值相当于文件夹里的文件。那么根键就好比根目录。子键就好比文件夹下的子文件夹。组织起来成树状结构。并不是什么高深的东西。

下面我们详细介绍这映入眼帘的五个根键。

首先需要提到符号键的概念。HKEY_CLASSES_ROOT。HKEY_CURRENT_USER及HKEY_CURRENT_CONFIG这三个根键本质上是另两个根键中部分内容的链接。并不独立存在。相当于Windows文件系统中快捷方式的概念。不光是根键。根键下的部分子键在其他地方也会有对应的符号键。这意味着注册表编辑器所展示的内容有很多是重复的。有些甚至重复了不止两次。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

根键的链接关系

注册表中真正保存数据的只有HKEY_LOCAL_MACHINE和HKEY_USERS两个根键。所以我们说注册表编辑器所展示的不是注册表本身。而是一个更易于查看和编辑的注册表视图。下表就是各根键的功能说明。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

表:根键简介

注:XP。Vista。Win7。甚至64位和32位系统下的注册表组成均略有不同。这里以Win7为主。并尽量体现各系统间的共通点。

hive文件

到现在为止。我们看到的都是在内存里的东西。既然注册表是一个存储信息的数据库。那么在磁盘上就应该能够找到对应的文件。没错。就在C盘。不是一个。是一堆(部分可能还被隐藏了起来)。我们称之为hive文件。hive直译过来就是蜂巢的意思。装逼一点就译成“储巢”。当然最明智的做法还是不翻译。

为什么叫hive呢?相传有个Windows工程师十分讨厌蜜蜂。于是他的同事恶作剧。引入了蜂窝(hive)……当然有观点认为是因为键与键值组织为B-tree(谐音Bee-tree)结构。倒是十分专业的样子。但我更乐意相信第一种解释。

废话太多了。赶紧来扒一扒HKLM和HKU下各个子键所对应的文件吧。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

表:键与hive文件的对应关系

说明:

☞ hive文件包括不带后缀名的数据存储文件(如BCD。SAM)以及相应的还有带各种后缀(.LOG。.LOG1。.LOG2。.blf。.regtrans-ms等)的辅助文件。辅助文件各有作用。不再本文讨论范围。

☞ hive文件都是二进制格式的。一般软件打不开的哦!

☞ 可以看到。注册表中几乎所有内容在磁盘上都有着相应的hive文件。除了HKLM\HARDWARE。这里有个比较重要的概念:volatile hive。这一类hive不在磁盘上留有数据。而是在每次开机时动态收集环境信息。只存在于内存中。(想来也是。本来开机时计算机会做一个加电自检。检测所有硬件。)所以说。hive文件并不能代表注册表的全部。完整的注册表只存在于内存中。

☞ 我不知道HKLM\COMPONENTS是用来干啥的。甚至在注册表编辑器里都看不见。但它确实存在。望有高人指点。

☞ 微软给出的hive的定义是注册表中键。子键和键值的逻辑组合。而并非指文件。许多文章和论文都把hive当做hive文件本身。在不产生歧义的情况下倒也没有大碍。

实验

通常软件在安装时会在HKCU\Software(即HKU\%SID%\Software)和HKLM\SOFTWARE下写入自己必要的配置信息。如果没有足够的空间。注册表就以4KB为单位增长(所以我们在C盘看到的hive文件大小都是4K的整数倍);卸载时部分键项残留下来。形成垃圾。大有去公共厕所拉完屎不冲水的架势。简直人神共愤。如果注册表为其增长了n个4K。那么这增长的部分就得不到释放。注册表就越来越“臃肿”了。

此时我尝试性地卸载了一个软件。注册表项也确实少了。可是hive文件岿然不动。甚至与近一个月前的大小一模一样。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

hive文件大小不变(NTUSER.DAT亦然)

尼玛这跟说好的不一样啊!难道是要重启?重启。不变。再重启。我在风中凌乱。由于理论上注册表更新会每隔5秒写回hive文件。也明显可以看到hive文件的修改时间确实刷新了。所以重启不重启根本没有任何影响。

是数据太小(不足4K就可能影响不了hive文件的体积)?事实上卸载前该软件的对应表项已经被我导出。确实超过4K。为找出症结所在。我一鼓作气卸了好几个软件。C盘顿时多出2G空间。这下总够了吧!谁料NTUSER.DAT还是那个NTUSER.DAT。SOFTWARE还是那个SOFTWARE。

别拦我!我要去厕所哭晕……

可是这到底怎么解释呢?原来hive文件大小并不能代表实际注册表项的大小。从注册表编辑器导出对应的二进制文件。才可以看到表项在内存中真正的体积。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

hive文件大小不变(NTUSER.DAT亦然)

很好。可以明显地看到内存中的hive确实缩水了。趁热打铁。在此基础上继续卸载一个暴风影音。卸载前先记录下其表项大小——32KB。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

暴风影音hive导出

事实证明本OS中暴风的装卸仅作用于HKCU。对应NTUSER.DAT。导出对比。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

hive文件体积对比(带2条下划线的即卸载暴风后导出者)

果然变小了。并且7944 – 7916 = 28 ≠ 32。这正是hive以4K为单位组织内容的表现。

现在就让我们来看一看。软件卸载时留下的垃圾hive有多大。我在注册表中找到几个早已卸载了的软件。多少年了。它们依然顽强地躺在那里。

ntuser.dat可以删除吗(c盘哪些文件可以删除)

垃圾hive导出

可以看出垃圾hive说大也不大说小也不小……等一下。貌似我这些例子覆盖性并不太好。怎么都是8K啊!有兴趣的朋友可以导出一些自己电脑上的垃圾hive。以弥补这单调的画面。

结论

1) 对磁盘效率的影响

到此为止。我们可以得出一个明显的结论。垃圾hive确实会增大注册表的体积。但磁盘上的hive文件似乎并不受影响。系统固定了hive文件的体积。也许是为了提高存取效率。另一方面也可以减少磁盘碎片。

2) 对内存效率的影响

那么在内存中呢?在系统运行时。内存中保存着一份完整的注册表。这意味着磁盘上的hive文件会被整个读入内存。但准确地说进入的是分页池。而分页池中长时间用不到的内容会被替换到磁盘。注册表中的垃圾项是永远也不会被访问到的。也就是说它们即使被加载到内存中。也必然会被换出到虚拟内存(磁盘)。因此不会影响系统运行速度。即使不被换出。内存中的注册表组织为Map结构:

ntuser.dat可以删除吗(c盘哪些文件可以删除)

装逼图:Cell Index Translation

类似通过“学校\年级\班级\学号”的形式能快速定位一个学生。注册表项也能被快速定位。少数多余的垃圾项对查找速度并无多大影响。

3) 对开机速度的影响

那么注册表垃圾真的就人畜无害了?我想它们唯一能导致的负面影响是:增加了系统启动过程中加载注册表的时间。而这份拖累有多少呢?CHIP有一张图很能直观地说明问题:

ntuser.dat可以删除吗(c盘哪些文件可以删除)

垃圾项占比示意图(来自CHIP)

通常整个注册表在百兆左右。而垃圾项估计也占不了百K。两者是千分之一量级的关系。即使整个开机时间(假设为1分钟)都在用来加载注册表。清理垃圾项却仅能带来0.06秒的速度提升。确实只能起到心理安慰的作用了。

但即便如此。清理注册表依然具有两大显著功效:

1) 许多大型专业软件都有“洁癖”。在重装时需要彻底清理;

2) 对于强迫症用户。干掉垃圾项是件很爽的事。

分享到 :
相关推荐

vs attach to process(vstack python)

1、vsattachtoprocess"vsattachtoproce[&helli...

dbeaver怎么设置中文字体大小(dbeaver字体大小设置快捷键)

1、dbeaver怎么设置中文字体大小DBeaver是一款功能强大的开源数据库管理[...

修复系统怎么操作(vivo手机出现修复系统该怎么办)

1、修复系统怎么操作修复系统是一项重要的技能,无论是在个人电脑还是在企业的计算机网[...

mpeg4和mp4格式一样吗(iphone怎么看mpeg4视频)

1、mpeg4和mp4格式一样吗MPEG4和MP4是两种常见的多媒体文件格式。然而[...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注