为何 Windows 系统用久会变慢,而 Linux 不会?

首先 , 问题不成立 。
windows用久了也可能不变慢 , linux用久了也可能会变慢 。
其次 , 扫了一眼前面的回答 , 基本上没有回答清楚Windows为什么会变慢的原因 , 我猜测说Linux不慢的人是因为用Linux多 , 或者没有去研究Windows为什么会变慢(或者不屑于研究?) 。
先反驳几个观点:
Windows有磁盘碎片 , Linux就没有吗?有人说Linux用direct和indirect块索引数据 , 碎片对ext影响不大 。各位拜托 , NTFS天生也是支持索引的 , NTFS碎片影响也不大的 。
有人说Windows垃圾文件变多 , NTFS也用B+树 , 请问文件多的话 , 能慢多少?是用户能感觉的到的吗?
【为何 Windows 系统用久会变慢,而 Linux 不会?】注册表IO也是IO , Linux读配置文件也是IO , 二者有本质区别吗?注册表IO需要排队?磁盘IO就不需要排队了吗?性能差别多大?能产生用户体验上的差别吗?
没事就把原因归结到文件系统碎片 , 一个完全碎片化的文件系统 , 能产生用户体验上的巨大的速度差异吗?不服气的拿出数据来 。也太小看文件系统cache的作用了 。
-----------------------------------------------下面解释为什么有时候Windows会变慢------------------------------------
打开注册表编辑器 , 访问以下键值:HKEY_LOCAL_macHINESYSTEMCurrentControlSetservices
看到下面的子键了吗?每项都是一个开机项(加载一个sys文件) , 这才是真正占用开机时间和运行时CPU时间的东西 , 而且由于软件设计的不规范 , 多数软件卸载的时候都不删这里的东西的 。把这个归结于微软设计不对是不恰当的 , 微软允许软件删除这里的内容 , 但很多软件不去做 。
这里跟启动项不同 , 并且修改具有很大的风险 , 所以普通用户会觉得:我启动项里没有东西 , 为什么还这么慢 , 因为有很多以系统服务启动的东西是不占进程ID、不占启动项的 , 手头有装360的 , 开机时间里 , “系统关键服务”这个大头 , 就是这堆东西 , 截图给大家看看(我特意装的360!):
 

为何 Windows 系统用久会变慢,而 Linux 不会?

文章插图
 
 
一个新装的Windows , 如果不装任何软件 , services里是不会新增任何东西的 , 那么速度也不会有明显的变慢(我老家有台电脑 , 装的WIN2K , 常年不联网 , 好几年了开机速度都没有变化) 。
而我现在的电脑 , services下面有超过100项内容(刚特意数了一下 , 大概500多) , 这么多东西全加载 , 不慢就奇怪了 。(这里补充一下 , 这么多并非都开机加载 , 有些是延迟加载的 , 即使这样 , 开机加载的东西的大头主要都在这里)
--------------------为什么多数Linux不会变慢--------------------
因为二者的内核有本质差别 , Windows使用近似微内核的结构 , 外围驱动有相当一部分是通过注册services项目的方式加载的 , 所以 , 新增硬件 , 新装软件如果有sys文件需要加载 , 就要增加services项 , 导致开机时Windows内核代码加载时间会慢慢变长 。
Linux是宏内核结构 , 大部分驱动都包含在内核里 , 我相信Linux用户没事不会自己重编内核玩 , 那么Linux内核加载时间是固定的 。那么Linux开机时间就不会有特别明显的变化 。要是Linux用户隔三差五的往内核里添点东西 , Linux不会变慢?那就出鬼了 。
所以别去比较二者为什么变慢了 , 内核设计都不一样 , 如果Linux允许rpm包大量的把代码放到内核态并且开机加载 , Linux一样也会慢的要死 。
------------------------------------------
最后 , 给个数据 , 虚拟机里(配置相同) , 一个新装的debian 6 , 开机时间一共是40秒(从boot菜单到桌面加载完 , 除去了输入密码的时间 , 秒表计时) , 一个新装的WINXP , 开机时间是35秒(无密码)
------------------------------------------
有人说 , 我就装个游戏 , 电脑怎么变慢了?你们知道吗 , 装个游戏没准就顺便给你装个.net frameworks x.x , 顺便装directX , 顺手给你的服务项里塞一堆的sys文件 , 游戏玩多了不变慢就见鬼了 。这年头 , 装个QQ都有可能会给你安装sys文件(QQ2005-2007年期间的版本) , 电脑变慢这种事情 , 太正常不过了 。


推荐阅读