TL;DR 我的硬盘组合导致加载对话框需要大约 6 秒才能加载,这也通过代码得到确认,而且我找不到任何解决方法。
我使用 Windows 7 很长时间了,完全忽略了 8。只要使用 7,我就必须忍受非常长的启动时间,但除此之外,我对所有方面的表现都很满意。
在 Windows 10 发布之前,我咬紧牙关安装了它,这样我至少可以尝试跟上时代的步伐。同时,我得到了一个新的 SSD 来安装它,以缓解我的启动问题。一切都比我预期的要顺利得多,我很快就恢复了速度。成长的烦恼几乎不存在,除了一个刺在我身边:偶尔,当我打开加载对话框时,它甚至要等 5-10 秒才会出现。
(在您跳出来说“电源配置文件”之前,这不是它,它设置为从不降低硬盘转速。)我只说“偶尔”,因为我花了一段时间才弄清楚是哪些程序在这样做——起初我认为是所有程序,但 Chrome 和其他程序似乎已经修补了这种行为。每次仍然产生这种行为的主要程序是 Gimp 2.8;无论我做什么,如果我保存新文件或去加载,我都必须等待 5-10 秒才能弹出对话框。
起初我以为这是 Windows 10 本身的一个错误,但后来随着 Chrome 等软件的改进,我认为这一定是 Gimp 的问题,这不是我第一次遇到该程序的奇怪问题。但后来我更深入地了解了硬件,发现这不是 Gimp 的错。
我从事 Unity 游戏编程,目前正在使用 C#(和过时的 Mono 库)开发通用的保存/加载对话框。当我第一次使用文件浏览器时,它慢得像糖浆一样——我把这归咎于我的方法不好,但当我开始优化它时,我发现绝大多数等待时间都是由一行代码引起的:
string[] drives = System.IO.Directory.getLogicalDrives();
经过测量,这个延迟相当于 Gimp 的减速:5.5 秒,这一切都是为了让 Windows 说“您有 C:、D:、E: 和 F: 驱动器”。我对我的加载对话框进行了修改因此它会显示此驱动器信息延迟,并确认每次运行程序时,我都会有大约 5-6 秒的延迟。只是为了从系统 API 调用中得到反馈,以获取硬盘驱动器路径列表。
为了说明情况有多糟糕,我在妻子的笔记本电脑、兄弟的笔记本电脑、父亲的台式机(三台都使用 Windows 10)和我母亲的 Mac mini(针对 MacOS 重新编译后)上运行了上面链接的相同程序。在每一台电脑上,延迟都在 10 毫秒内,这正是我所期望的。Mac mini 花了大约 20 秒才加载该死的程序,但一旦运行,砰的一声,从这一行代码中加载硬盘只需不到十分之一秒的时间。
所以现在我不知所措了。电源配置文件设置为永远不关闭驱动器;我的 BIOS 设置为 SSD 的 AHCI;我已将页面文件设置为非动态;我已禁用索引和 Windows 搜索服务;所有内容都已进行碎片整理。我甚至重新启动 Windows 7 来查看情况;所有程序都没有任何加载对话框延迟,但当我运行我的小加载工具时,它始终显示加载驱动器需要 5.5 秒。
我应该注意到,在这 5 秒钟内,CPU/内存或磁盘访问没有出现大幅增长;这是程序运行后的屏幕截图,任务管理器在后台:。
以下是磁盘管理的屏幕截图:。磁盘 0 是 SSD,磁盘 1 是最近的 1 TB 驱动器,磁盘 2 是较旧的 Caviar Black 1 TB 驱动器,磁盘 3 是 Caviar Green 2 TB 驱动器(再也不会了;它具有内置的 20 分钟磁盘关闭功能。我很确定这不是造成这种情况的原因,因为重复测试仍然每次都有 5 秒的延迟)。
有人知道我还可以尝试其他什么方法吗?我基本上只能在断开某些驱动器的情况下启动,以查看是否有任何单个驱动器以某种方式导致问题(尽管我尝试在磁盘管理中将磁盘 0 和 1 以外的所有驱动器设置为离线,但无济于事)。任何帮助都将不胜感激。
编辑:进一步发现:断开所有硬盘(包括我的蓝光驱动器,只剩下一个 SSD)后,问题仍然存在。完全断开互联网连接并禁用网络发现后,问题仍然存在。
此外,5.5 秒的标记似乎是一个坚如磐石的数字。我的工具的“磁盘遍历”时间(即读取每个磁盘的第一级目录所需的时间)变化很大,而磁盘读取时间始终在 5.550-5.580 范围内。这似乎表明某处发生了某种 5.5 秒超时。
编辑2:我启动 Windows 7 时只连接了 2 个 1TB 硬盘。加载时间仍然受制于 5.5 秒的等待时间,即使没有涉及的 SSD,这推翻了我关于根本原因的主要理论。这暗示着主板的输入驱动程序可能存在问题,也许?
我的硬件,以防万一它最终变得有意义:
- 处理器:AMD Phenom II X4 965-黑色
- 母板:技嘉GA-790XTA-UD4
- 视频:AMD 高清 5770
- 固态硬盘:OCZ ARC 100 240GB
- 硬盘:WD Black 1TB(2013年)
- 硬盘:WD Green 2TB(2011年)
- 硬盘:WD Black 1TB(2010年)
答案1
戈尔内存的儿子商人。
这是不存在的软盘驱动器。没有人会期望自己没有的动力!
我的主板上有一个软盘控制器,这项技术显然源自检查是否有任何连接被认为是浪费时钟周期的时代。每次我运行时System.IO.Directory.GetLogicalDrives()
,它都在等待幽灵驱动器超时。
我打开 BIOS,发现有一个设置可以完全禁用软盘,这让问题彻底消失。Gimp 现在也可以完美加载了。
我真是个出色的侦探。
答案2
仅供参考——禁用软盘驱动器>软盘驱动器在设备管理器中对我来说很管用。我懒得重启,也懒得在 BIOS 中乱搞。