只是一个好奇的问题。磁盘清理已经占用了我一个核心的 100% 很长一段时间,并且仍在继续。似乎花费了很多时间,尤其是在 Windows 更新清理上。
不太明白为什么删除文件会是一项如此繁重的工作。尤其是它已经花费了大量时间来计算可以删除的内容。
为什么磁盘清理会占用这么多时间和 CPU?它做了什么,为什么这么耗时?
答案1
Windows 通过删除替换的更新并压缩无法卸载且未使用的文件来压缩 WinSxS 文件夹。这会占用大量 CPU 能力,这就是您看到 CPU 使用率高的原因。
你可以使用 xperf/WPA 分析 CPU 使用率来验证这一点。
答案2
答案3
缓解此问题并加快“磁盘清理”的“Windows 更新清理”阶段的一种方法是暂时为进程管理器在所谓的“清理”活动持续期间完成此过程。
在里面任务管理器在“详细信息”窗格中,找到TiWorker.exe
并右键单击以显示弹出菜单。对于“设置优先级”,请选择“高于正常”,甚至“高”。对我来说,这增加了TiWorker
CPU 活动(从平均约 16% 增加到其最大潜力 25%(在 4 核机器上)。
除了微不足道的加速(以及可能带来的成就感)之外,几乎没有什么可以做的,因为显然“Windows 更新清理”的编码方式是,由于某些未知原因,逐个文件进行,导致整体工作严重受磁盘限制。
而且,要知道这个过程很可能不是挂起,并且确实有一天会完成。要验证这一点(并在此烦人的等待时间内进一步分散您的注意力),您可以检查资源监控(运行“resmon.exe”)。
答案4
The Old New Thing 的 Raymond Chen 发布了对此的解释,特别是有关 Windows 更新清理的内容。
https://devblogs.microsoft.com/oldnewthing/20200922-00/?p=104252
基本上,这是一次深度清理,删除不再引用的组件。这是在正常维护计划中发生的,但磁盘清理会绕过维护窗口和自我设定的时间限制。
Windows 更新清理还会检查系统是否能从系统文件压缩中获益。为此使用的压缩算法旨在使解压速度快,但代价是使用大量 CPU 时间来执行压缩。
昂贵的数据压缩占用了 CPU,并导致清理磁盘空间的时间很长。