1995年,计算机科学家Niklaus Wirth在《Computer》杂志上发表了一篇题为"A Plea for Lean Software"的文章。他在文中提出了一个被后人称为"Wirth定律"的观察:软件变慢的速度比硬件变快的速度更快。三十年后,这个定律仍然精准地描述着每一个电脑用户的日常体验。

Wirth将这句格言归功于Martin Reiser,后者曾在Oberon系统用户手册的前言中写道:“人们希望硬件的进步能治愈所有软件弊病。然而,一个敏锐的观察者会发现,软件在体积和迟钝程度上都在超越硬件的发展。”

这不仅仅是软件开发者的"懒惰"——背后是一系列深刻的技术博弈和物理限制。

软件膨胀:摩尔定律的阴暗面

当Intel联合创始人Gordon Moore在1965年预测集成电路上的晶体管数量每两年翻一番时,他大概没想到这个规律会成为软件膨胀的借口。Wirth定律的另一种表述"Andy and Bill’s law"说得更加直白:“安迪给的,比尔都拿走了”——安迪·格鲁夫领导的Intel不断提升硬件性能,比尔·盖茨领导的Microsoft则用更庞大的软件将其消耗殆尽。

这种膨胀并非完全无意义。现代软件确实提供了更丰富的功能、更华丽的界面、更安全的架构。但问题在于,软件增长的边际效益递减。以Web浏览器为例,Chrome的一个标签页在2025年可能消耗500MB以上的内存,而十年前同等功能的网页可能只需要十分之一的资源。这其中有Web技术栈复杂化的合理成分,也有过度依赖抽象层、运行时环境和第三方库的不合理因素。

Stack Overflow在2023年的一篇博客文章中指出,现代Web和原生应用程序变得臃肿和缓慢的最大原因是:用户追踪、广告、营销漏斗和联盟链接。这些功能对用户价值有限,却消耗了大量计算资源。

后台进程的无声累积

每安装一个软件,你很可能同时安装了一个或多个后台服务。Windows任务管理器中的"后台进程"列表会随着时间不断增长:自动更新检查器、云同步客户端、硬件监控工具、快捷键管理器……它们各自占用少量CPU和内存,但累积起来却是可观的资源消耗。

更隐蔽的是启动项膨胀。每个软件都希望自己能"第一时间响应用户",于是争相将自己加入系统启动序列。一台使用了三年的Windows电脑,可能同时有几十个程序在后台等待启动,它们争抢磁盘I/O、CPU周期和内存空间,导致开机时间从最初的15秒延长到数分钟。

SSD的隐秘衰减:写入放大与垃圾回收

如果你的电脑使用固态硬盘(SSD),可能会注意到一个现象:刚买来时速度飞快,使用一两年后写入性能明显下降。这并非产品质量问题,而是NAND闪存的工作原理所决定的。

NAND闪存有几个关键特性:

  1. 写入前必须擦除:闪存单元不能直接覆盖写入,必须先擦除整个块(block),然后才能写入新数据。
  2. 擦除粒度远大于写入粒度:写入以页(page,通常4-16KB)为单位,擦除以块(block,通常包含数十到数百页)为单位。
  3. 有限的擦写寿命:每个闪存块只能承受有限次数的擦写循环(SLC约10万次,MLC约3000-5000次,TLC约1000次,QLC更低)。

这种不对称性导致了写入放大(Write Amplification) 现象:当你想要修改一个4KB的文件时,SSD控制器可能需要读取整个128KB的块,修改其中的4KB,然后写入到一个新的块中——实际写入量是逻辑写入量的32倍。

SSD写入放大示意图

图片来源: Wikipedia

随着SSD使用时间增长,可用空间减少,垃圾回收(Garbage Collection)的压力增大。控制器需要在后台搬运有效数据、擦除无效块,这个过程消耗了大量的写入带宽,导致用户感受到的写入速度下降。

TRIM:操作系统的关键配合

TRIM命令是操作系统与SSD协作的关键机制。当用户删除一个文件时,操作系统不再只是简单地标记文件系统中的目录项为"已删除",而是通过TRIM命令通知SSD哪些逻辑地址上的数据已经无效。这让SSD可以在垃圾回收时跳过这些数据,减少无效搬运,从而降低写入放大。

如果TRIM功能被禁用或操作系统不支持,SSD会认为所有曾经写入的数据都是有效的,垃圾回收时不得不搬运大量"垃圾"数据,严重影响性能和寿命。Windows 7及以上版本、macOS 10.6.8及以上版本、Linux内核2.6.33及以上版本都原生支持TRIM。

机械硬盘的物理衰退

对于仍在使用机械硬盘(HDD)的系统,文件碎片化是性能下降的主要原因。当文件被分散存储在磁盘的不同位置时,读写磁头需要频繁移动来访问数据,增加了寻道时间。

虽然现代操作系统都有自动碎片整理功能,但碎片整理本身是一个资源消耗型操作,而且对于接近满载的磁盘效果有限。更重要的是,机械硬盘本身存在物理老化:轴承磨损、磁头定位精度下降、盘片表面氧化都会导致读写性能逐渐降低。

热节流:当你的CPU"自我保护"

电脑性能下降的另一个常被忽视的原因是散热系统失效

CPU和GPU都有温度保护机制。当核心温度超过安全阈值(通常是90-105°C)时,处理器会自动降低运行频率以减少发热——这就是热节流(Thermal Throttling)。用户感知到的现象是:电脑在高负载时突然变慢,帧率骤降,响应延迟。

导致散热效率下降的最常见原因是灰尘堆积。一个使用了两三年的电脑,其散热器翅片和风扇叶片上可能积满了灰尘,严重影响气流通过。测试表明,严重的灰尘堆积可以使CPU温度上升20-30°C,直接触发热节流。

另一个容易被忽视的环节是导热硅脂老化。CPU和散热器之间涂布的导热硅脂会随时间干涸开裂,热阻增加。对于使用了三五年以上的电脑,重新涂抹导热硅脂往往能显著降低温度。

内存泄漏与页面交换

内存泄漏是软件层面导致性能下降的重要原因。当程序分配了内存却忘记释放时,可用内存会逐渐减少。对于长期运行的服务程序或浏览器标签页,即使是微小的泄漏也会累积成显著的问题。

当物理内存耗尽时,操作系统会将部分数据交换到磁盘上的页面文件(pagefile)。由于磁盘速度比内存慢几个数量级(即使是SSD,延迟也是内存的100倍以上),频繁的页面交换会导致系统明显卡顿——这种状态被称为"抖动"(thrashing)。

浏览器的内存管理是一个典型例子。打开几十个标签页后,即使每个标签只泄漏少量内存,累积效应也会导致系统频繁交换到磁盘。现代浏览器虽然实现了标签页休眠和内存压缩,但根本问题仍然存在。

硬件老化的科学真相

CPU会随时间变慢吗?这个问题需要从两个层面回答。

功能层面,现代CPU有极高的设计冗余度,数字电路的特性决定了它们要么正常工作,要么完全失效。不存在"部分工作"的状态。因此,CPU本身不会因为老化而变慢——它要么全速运行,要么彻底坏掉。

但从可靠性层面,半导体器件确实存在退化机制。最主要的是电迁移(Electromigration):在高电流密度下,金属导线中的电子会"推动"金属原子移动,长期累积会导致导线变细甚至断裂。这种现象由Black方程描述:

$$MTTF = \frac{A}{J^n} \exp\left(\frac{E_a}{kT}\right)$$

其中MTTF是平均失效时间,J是电流密度,T是温度,$E_a$是激活能,k是玻尔兹曼常数。这个方程表明,温度和电流密度是影响芯片寿命的关键因素。长期高温运行的CPU更容易发生电迁移导致的失效。

不过,对于正常使用的消费级CPU,设计寿命通常远超实际使用周期。电迁移导致性能下降的情况在普通用户中极为罕见,更多出现在超频爱好者和数据中心场景。

操作系统更新的双刃剑

操作系统更新是一个复杂的话题。一方面,安全补丁和性能优化确实能改善体验;另一方面,新功能和新架构往往针对更新的硬件设计,在旧硬件上可能表现不佳。

Windows的SuperFetch(现称SysMain)服务是一个典型案例。它会分析用户的使用模式,预加载常用程序到内存中以加快启动速度。但在配备机械硬盘的旧电脑上,SuperFetch可能导致磁盘100%占用,反而拖慢系统。同样,Windows搜索索引服务在后台扫描文件时也会消耗大量I/O资源。

根本原因:资源竞争

综合以上分析,电脑变慢的根本原因是资源竞争加剧

  • CPU:更多后台进程争抢计算周期
  • 内存:更庞大的程序、更多标签页、内存泄漏
  • 存储:碎片化、写入放大、可用空间减少
  • 散热:灰尘堆积、硅脂老化导致降频保护

这些因素相互交织:内存不足导致频繁换页,换页增加了磁盘I/O,磁盘I/O又与后台进程争抢资源,CPU在高负载下发热增加,如果散热不良则触发降频……

这不是单一问题,而是系统性的熵增。

延缓衰退的工程原则

理解了变慢的原因,应对策略就清晰了:

软件层面:定期审查启动项和后台服务,卸载不必要的程序,使用轻量级替代品(如用Sumatra PDF替代Adobe Reader)。对于浏览器,定期关闭不用的标签页,检查扩展程序的资源占用。

硬件层面:定期清理灰尘(建议每半年一次),必要时重新涂抹导热硅脂。对于机械硬盘,保持至少15%的可用空间,定期运行碎片整理。对于SSD,确保TRIM功能开启,避免容量超过85%。

系统层面:保持操作系统更新但不必追求最新版本。对于老旧硬件,考虑使用轻量级系统(如Linux发行版中的Xfce或LXQt桌面环境)。

最终,电脑变慢是复杂系统演化的必然结果。我们无法完全阻止这个过程,但可以通过理解其机制,延缓衰退的速度,在必要时刻做出明智的升级决策。


参考资料

  1. Wirth, N. (1995). A Plea for Lean Software. Computer, 28(2), 64-68.
  2. Hu, X. Y., et al. (2009). Write Amplification Analysis in Flash-Based Solid State Drives. IBM Research.
  3. Reiser, M. (1991). The Oberon System User Guide and Programmer’s Manual. ACM Press.
  4. Black, J. R. (1969). Electromigration - A brief survey and some recent results. IEEE Transactions on Electron Devices.
  5. Intel Corporation. SSD Write Amplification Analysis and Mitigation. Technical Documentation.
  6. Kingston Technology. The Importance of Garbage Collection and TRIM Processes for SSD Performance.
  7. Stack Overflow Blog (2023). Is software getting worse?
  8. IEEE Spectrum (2011). Transistor Aging.
  9. TechSpot (2018). What’s Thermal Throttling and How to Prevent It.