我读过关于硬盘分区上有大量文件时出现 8dot3name 问题(似乎一般经验法则是超过 300,000 个)的文章,但到现在为止,所有源都至少是几年前的了。随着最近软件和硬件的发展,禁用此旧功能并删除所有现有的短文件名条目是否是个好主意?
使用fsutil 8dot3name strip /t /s /v c:
(其中/t
用于测试,因此不会发生删除)命令,我发现我的 OS 驱动器上有 450k+ 个文件分配了 8dot3names,而我的 HDD 上有超过一百万个。系统驱动器逐字输出显示一堆注册表项,我猜想如果没有标记,这些项不会被删除/f
,而 HDD 上没有这样的项。
关于此主题有一些较旧的帖子在 StackOverflow 上(2008-2011 年)和这里关于 SuperUser(自 2013 年起)其中一些提到了 Windows 7 测试。从那时起,文件系统处理方面肯定取得了进展。
具体来说,在发布时(版本 1803,2018 年 11 月更新)的 Windows 10 上,当使用 m.2 SSD(比 SATA SSD 快几倍)作为操作系统驱动器时,禁用 8dot3name 生成并删除所有现有条目(仅留下与注册表相关的条目)是否有用?那么非系统硬盘呢?
答案1
我的建议:性能的提升是不值得的,禁用 8.3 命名时您可能会遇到麻烦。
性能提升:没有人会运行在任何一个目录中创建 100K 文件的程序。在任何正常程序的运行过程中,创建一些文件的时间以毫秒为单位,因此将其速度提高 10 倍根本不会引人注目。
兼容性:某些程序在注册表中以 8.3 格式存储文件名。如果您删除这些文件名,这些程序可能会停止工作。许多安装程序仍在使用 8.3 名称,因此您可能会发现自己无法安装使用这些名称的产品。
简而言之:我建议不要改动 8.3 命名。性能提升会非常低,几乎无法衡量,但出现问题的几率却相当高。
我不认为这在 Windows 10 中有所改变,因为 NTFS 在格式上仍然与以前的 Windows 版本高度兼容。微软从未在 Windows 10 的任何改进列表中提及 8.3 命名选项。
答案2
几年来,我每分钟都会将太阳能电池板的使用数据记录到 AWS 存储桶中,文件名以 unix 时间戳开头。
最近,当我尝试将这 190 万个文件(10GB)同步到我的本地计算机时,我发现该aws s3 sync
过程急剧变慢并几乎停止。
跑步fsutil behavior set disable8dot3 1
可以带来瞬间且极其明显的速度提升。