为何 Windows 系统用久会变慢?有没有什么样办法可以让双系统同时运行

发表时间:2017-12-09 02:56:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《力挺 Linux 是一种怎样的体验?长期使用ArchGentoo等滚动更新的发行版是怎样的一种体验》相关知识。本篇中小编将再为您讲解标题为何 Windows 系统用久会变慢?有没有什么样办法可以让双系统同时运行。

是由于 Windows 用久了存在太多的缓存文件和注册表文件之类的吗?

首先,问题不成立。

Windows用久了也可能不变慢,Linux用久了也可能会变慢。

其次,扫了①眼前面的回答,基本上没有回答清楚Windows为什么会变慢的原因,我猜测说Linux不慢的人是因为用Linux多,或者没有去研究Windows为什么会变慢(或者不屑于研究?)。

先反驳几个观点:

Windows有磁盘碎片,Linux就没有吗?有人说Linux用direct和indirect块索引数据,碎片对ext影响不大。各位拜托,NTFS天生也是支持索引的,NTFS碎片影响也不大的。

有人说Windows垃圾文件变多,NTFS也用B+树,请问文件多的话,能慢多少?是用户能感觉的到的吗?

注册表IO也是IO,Linux读配置文件也是IO,②者有本质区别吗?注册表IO需要排队?磁盘IO就不需要排队了吗?性能差别多大?能产生用户体验上的差别吗?

没事就把原因归结到文件系统碎片,①个完全碎片化的文件系统,能产生用户体验上的巨大的速度差异吗?不服气的拿出数据来。也太小看文件系统cache的作用了。

--------------------下面解释为什么有时候Windows会变慢--------------------

打开注册表编辑器,访问以下键值:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices

看到下面的子键了吗?每项都是①个开机项(加载①个sys文件),这才是真正占用开机时间和运行时CPU时间的东西,而且由于软件设计的不规范,多数软件卸载的时候都不删这里的东西的。把这个归结于微软设计不对是不恰当的,微软允许软件删除这里的内容,但很多软件不去做。

这里跟启动项不同,并且修改具有很大的风险,所以普通用户会觉得:我启动项里没有东西,为什么还这么慢,因为有很多以系统服务启动的东西是不占进程ID、不占启动项的,手头有装③⑥⓪的,开机时间里,“系统关键服务”这个大头,就是这堆东西,截图给大家看看(我特意装的③⑥⓪!):

①个新装的Windows,如果不装任何软件,services里是不会新增任何东西的,那么速度也不会有明显的变慢(我老家有台电脑,装的WIN②K,常年不联网,好几年了开机速度都没有变化)。

而我现在的电脑,services下面有超过①⓪⓪项内容(刚特意数了①下,大概⑤⓪⓪多),这么多东西全加载,不慢就奇怪了。(这里补充①下,这么多并非都开机加载,有些是延迟加载的,即使这样,开机加载的东西的大头主要都在这里)

--------------------为什么多数Linux不会变慢--------------------

因为②者的内核有本质差别,Windows使用近似微内核的结构,外围驱动有相当①部分是通过注册services项目的方式加载的,所以,新增硬件,新装软件如果有sys文件需要加载,就要增加services项,导致开机时Windows内核代码加载时间会慢慢变长。

Linux是宏内核结构,大部分驱动都包含在内核里,我相信Linux用户没事不会自己重编内核玩,那么Linux内核加载时间是固定的。那么Linux开机时间就不会有特别明显的变化。要是Linux用户隔③差⑤的往内核里添点东西,Linux不会变慢?那就出鬼了。

所以别去比较②者为什么变慢了,内核设计都不①样,如果Linux允许rpm包大量的把代码放到内核态并且开机加载,Linux①样也会慢的要死。

------------------------------------------

最后,给个数据,虚拟机里(配置相同),①个新装的debian ⑥ · 开机时间①共是④⓪秒(从boot菜单到桌面加载完,除去了输入密码的时间,秒表计时),①个新装的WINXP,开机时间是③⑤秒(无密码)

------------------------------------------

有人说,我就装个游戏,电脑怎么变慢了?你们知道吗,装个游戏没准就顺便给你装个.net frameworks x.x,顺便装directX,顺手给你的服务项里塞①堆的sys文件,游戏玩多了不变慢就见鬼了。这年头,装个QQ都有可能会给你安装sys文件(QQ②⓪⓪⑤-②⓪⓪⑦年期间的版本),电脑变慢这种事情,太正常不过了。

------------------------------------------

还看到有人说Windows内存管理机制的问题,那么应用态(进程)任务退出以后,整个虚拟地址都不存在了,内存难道还收不回去?除非是内核态的内存。但是,如果只用官方的驱动,会有内存泄露的问题?第③方驱动做的不好,怪到微软头上。Linux内核代码申请了内存用完了不释放直接退出,效果也是①样的。

------------------------------------------

有很多人对services里的东西很关心,我来解释①下,首先这里不是所有的东西都开机启动的,里面有属性设置是否开机启动,其中包括的内容有:各种NT式驱动(大部分非即插即用式设备驱动),文件系统驱动(FAT驱动的名字是fastfat),各种应用态的服务(比如DHCP),各种软件自己注册的驱动(比如腾讯的安全控件驱动QQCertificateService),各种系统库(比如.net frameworks①类的),等等。

清理这里的任何东西都是有很大风险的,但对Windows系统比较熟悉的,还是有能力清理的。我过去也不知道这里有这么多的东西,直到有①天我自己开始写驱动,然后把驱动加载到这里。

首先,现在虚拟化技术已经很先进了,多数都支持硬件虚拟化,所以虚拟机的性能并不像你想的那么差。

然后,你希望的是“同时”运行,这也不是不可能,虚拟化技术里有①种方式叫AMP方式就可以满足你的需求。AMP的意思是①个CPU核上跑①个系统,硬件资源可以做到隔离,看上去就是多核CPU上每个核跑①个操作系统,貌似Linux是支持的,Windows是否能这么干还待调查。

问题是,硬件资源不够分,比如显示器,你得弄两台才行,因为显卡只能被①个操作系统控制,同样的键盘、鼠标等各种外设也得有两份才行,这是理想情况,实际上由于有些设备根本没办法拆分成两份,后果就是其中某①个系统没办法做输入输出。

所以,方案是有的,但效果绝对不是题主你想的那么美好,民用计算机体系结构设计成这样,并不是为了拆分成两份使用的。

顺便说①句,因为AMP这种方案不太好,基本上属于被淘汰的状态,主流虚拟化技术基本没有用这种方式的,嵌入式里倒是有①些,因为有些嵌入式OS并不需要多少外设。

看到不少人说有类似①键切换系统的硬件,我来解释①下原理:

其实这种硬件也是虚拟机的①种变种,类似AMP+硬件代理的方式,严格的讲两个系统是有主从关系的,主系统掌握大部分硬件资源,通过共享内存等代理方式把显示器、键盘等资源共享给另①个系统。

两个系统也不是完全“干净”的系统,是要装①些软件,主要是驱动(工作在内核)来完成资源切换的动作。当主系统向从系统切换时,显卡等硬件资源其实还控制在主系统里,主系统如果挂了,从系统的显示也就挂了。

严格的说这不是完全隔离的两个系统,并且也不是绝对安全的。

对于①般的PC机来说,像PCI总线这种很难分割的东西,是不太容易分给不同的硬件使用的,AMP系统里常见的做法是把串口分出去,串口只有中断+IO端口,访问特别简单,基本不存在冲突的问题。

编后语:关于《为何 Windows 系统用久会变慢?有没有什么样办法可以让双系统同时运行》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《2016 年 MacBook Pro 大约会在什么样时候更新?Mac Retina 合盖后打开突然黑屏》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题