為何 Windows 系統用久會變慢,而 Linux 不會?
是由於 Windows 用久了存在太多的緩存文件和註冊表文件之類的嗎?
以上諸位談了很多技術上的問題,但實際上還有一個重要的原因,那就是Windows用戶的平均電腦維護知識水平遠遠低於Linux用戶。在日常使用中,Windows用戶由於操作不當、盜版軟體等等各種因素導致垃圾、流氓軟體的不斷積累,這比起磁碟碎片或者註冊表什麼的對系統運行速度的影響要大得多。而Linux用戶往往有相對較高的計算機操作能力,對計算機的使用習慣也較Windows用戶的平均水準好得多。日常使用中自然不易在計算機里積累大量的問題。如果2個計算機維護知識水平相似的人分別長時間使用2台硬體相似的Windows、Linux電腦,那麼它們的總體運行效率應該不會有致命意義上的差別。
首先,問題不成立。
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、不佔啟動項的,手頭有裝360的,開機時間裡,「系統關鍵服務」這個大頭,就是這堆東西,截圖給大家看看(我特意裝的360!):
一個新裝的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年期間的版本),電腦變慢這種事情,太正常不過了。
------------------------------------------
還看到有人說Windows內存管理機制的問題,那麼應用態(進程)任務退出以後,整個虛擬地址都不存在了,內存難道還收不回去?除非是內核態的內存。但是,如果只用官方的驅動,會有內存泄露的問題?第三方驅動做的不好,怪到微軟頭上。Linux內核代碼申請了內存用完了不釋放直接退出,效果也是一樣的。
------------------------------------------
有很多人對services里的東西很關心,我來解釋一下,首先這裡不是所有的東西都開機啟動的,裡面有屬性設置是否開機啟動,其中包括的內容有:各種NT式驅動(大部分非即插即用式設備驅動),文件系統驅動(FAT驅動的名字是fastfat),各種應用態的服務(比如DHCP),各種軟體自己註冊的驅動(比如騰訊的安全控制項驅動QQCertificateService),各種系統庫(比如.net frameworks一類的),等等。
清理這裡的任何東西都是有很大風險的,但對Windows系統比較熟悉的,還是有能力清理的。我過去也不知道這裡有這麼多的東西,直到有一天我自己開始寫驅動,然後把驅動載入到這裡。我覺得任何時候討論Linux都應該區分桌面版和伺服器版。
我覺得吧,專業人士,不論是windows還是linux,都不怕他會慢,都有解決辦法。普通大眾呢,只用windows,而且是各種各樣的配置,各種各樣的習慣,各種各樣的流氓軟體,污染源大呀。
linux除了專業人士,像我這種裝逼貨,裝上linux以後不知道幹啥,盯著屏幕看半天,然後換回windows的能體會出linux的慢來么。
我用windows10年來,沒有發現誰的電腦在配置差別不大的時候,能流暢過我的電腦的。windows沒有那麼不堪.作為一個桌面系統受用戶使用習慣導致的各種問題不能怪windows.linux做為伺服器使用當然經過了不少優化和維護.看看經過維護和優化的windows當伺服器一樣剛剛的.
安裝軟體多了,Linux也會慢;精心維護,windows也能保持不錯的速度。
什麼內存管理、碎片問題都不是主要的,現在win7/10的設計都非常優秀,並不比Linux差,甚至有些方面還有勝出。主要問題是,windows用的人多,而且好好用的不多,動不動就是各種全家桶,有用沒用一股腦裝上(我見過某人的機子上有四個殺毒軟體,而且他自己都說不清是什麼時候裝上去的),更別說很多軟體、遊戲還會添加運行環境、後台服務、自啟動等等,所以才有windows越用越慢一說。
Linux平台上本身軟體就少,用的人也少,即使這少數人,還都是會好好用的人。實際上Linux上面裝了軟體,也有會自啟動,也會有各種服務,只是用的人少,懂的人比例高些,所以看起來變慢問題不突出罷了。
Windows變慢的原因:
1. 虛擬內存文件碎片;
2. 變龐大的system32目錄,單目錄下文件增多會增加查找時間; 3. 註冊表導致的隨機i/o,尤其開機時N多程序擠著讀註冊表的情況; 4. 各種註冊的鉤子,各種攔截; 5. 文件系統碎片。 相比Linux: 1. 物理上固定的swap分區; 2. 良好的目錄結構; 3. 無註冊表,配置文件順序讀取; 4. 很少應用去搞攔截系統調用的勾當;5. 文件系統通過grouping避免碎片化。
系統用了兩年了吧,從Win8開始到後來在應用商店升級了8.1,至今從未重裝過系統,也沒有任何感覺到系統變慢。所有軟體我都是裝在C盤的~
其實是否會變慢更關鍵是個人的使用習慣問題。比如:
來路不明的軟體不要在實體機里安裝,鬼知道作者為了達成目的用了什麼非標準的方式去實現
需要高許可權的軟體少裝,一般比較犀利的安全軟體都是要載入驅動的,而這些驅動是否兼容就很難說了,而且這些軟體破壞性比較強,一不小心就能造成系統異常
沒事不要亂清理所謂的垃圾文件,註冊表垃圾,只要你磁碟空間足夠,這些東西大可不必清理,說不準清理之後問題就來了。當然這些對機械硬碟還是會有點影響的,用windows自帶的清理或者cclean吧。
還有其他總結不出來了,摔
只要硬體不差一般無需優化,微軟都給你優化好了。各種大師難道比微軟更了解Windows?另外由於中國盜版泛濫軟體商無法通過正常渠道賺錢只好出各種流氓軟體彈窗廣告劫持沒節操捆綁開機啟動,是系統變慢的最重要原因。
Windows機器的硬體配置參差不齊,從高到低不知道能分出多少個等級,windows要面對的硬體之多,廠商之多,性能差距之大不是Mac Book能比的;反觀Apple,最低配的Mac Book Air在發布當時,硬體配置也算是很優秀了,而mac book面對的硬體完全由蘋果說了算,其實也就那麼幾種吧,當然可以做比較好的優化。(當然很多人是買了mac裝了windows)另外,windows用戶這麼多,什麼水平的都有,懂優化的依然可以讓跑了一年的windows像初裝一樣快的飛起;不懂的嘛,右下角那一堆圖標,你告訴我怎麼快!怎麼快!
自從我把系統盤換成 固態硬碟,再沒有慢過!
使用linux要的就是對系統和電腦的絕對控制權以及折騰的慾望。而且linux下面不會有那麼多軟體給你安裝,然後自動啟動的 (我其實很想有的)。慢,這個事情在操作系統層面上差距不大。
其實快和慢都是相對來說的,新硬體層出不窮,速度會越來越快,軟體也越來越大,人們就理所當然的認為系統越來越慢了,舉個例子: * 5年前的qq和現在的qq在同一台機器上的啟動速度是不一樣的
暫且不談Windows和Linux對待緩存文件的機制。就從用戶的角度來說,Windows用戶基數大而且很大一部分都不知道那些什麼緩存、垃圾什麼的到底在哪,因為太多地方了。而Linux用戶通常都相對了解自己所用的系統,起碼大概知道緩存、垃圾可以在哪很容易的清除。。。
我linux上的chrome不要太慢,不能忍,經常卡死,每次刪掉cache好兩天。不知道是chrome linux版寫的太爛還是什麼別的原因。 Firefox還經常莫名奇妙內存泄露。 有時用兩天也不會,有時用2個小時內存就全部用光。
沒有體會。
我的舊電腦預裝的win7 x64(HP品牌機),三年了從未重裝,大小軟體很多,包括Visual studio和Adobe CS6套件這種巨無霸軟體,還都裝在C盤,C盤佔用總共達到230G且很少刻意清理,但是除了配置跟不上的因素外一點都沒有變慢。我的手機是windows 8.1,一年了從未重裝或者重置系統,還是沒有任何變慢。Linux沒有百度騰訊360搜狗2345金山等等的全家桶
Linux,Mac用久了一樣會變慢,而Windows在這方面也不至於那麼糟糕,這些差距都被Linux和Mac粉絲誇大了.要想讓系統長久保持流暢,每個系統都需要關注一些問題.
Linux要是在啟動時候需要啟動的程序多了就會慢的,尤其是redhat下面的sendmail要是域名解析錯誤了,啟動的時候就完全可能不能啟動起來。
請不要拿垃圾配置評價一個系統的優劣。謝謝。
推薦閱讀:
※在Android系統下有沒有可能開發出類似Windows里「驅動精靈」這樣的應用程序?
※Windows滑鼠屬性里「提高指針精確度」的功能是怎麼工作的?
※為什麼有些人要鄙視 Mac 裝 Windows 呢?
※幾個 G 大的 Windows 操作系統純代碼核心部分有多大?
※Windows 系統下最好用的 Python 文本編輯器是哪一個?為什麼?
TAG:MicrosoftWindows | Linux |