Linux 内存占用总是很高为何依旧很流畅?
Linux 的内存显示经常会出现 90% 多已被使用,但系统依旧很流畅的情况,想知道:
- 有时候 CPU 占用率很低,但内存占用率很高,内存都被怎么用掉了?
- 系统依旧流畅,不会像 Windows 卡成翔,原理在哪里?
Answers
说明:本回答与题目相关度50%,只是想为 Windows 正名!
谁再说 Windows 卡成翔我跟谁急!
i3 移动低电压版 + 4G内存 + SSD 有图为证:
跑 win8.1 一点都不卡。有人会问,你开了几个程序?
正常情况下,我的任务栏是这样的:
PHPStorm、Chrome都是内存大户,除了 PHPStorm 在新建项目索引文件时会卡一点外,平时并未有任何异常的卡顿,使用极其流畅。如果你的进程中有各类在线视频播放客户端,各种所谓的安全杀毒进程,不卡才怪!
一直以为,Windows是给科学家用的,Mac OS X 是给艺术家用的。我自认为自己艺术修养不够,又驾驭不了 Linux 桌面(在Linux桌面发行版折腾了一年,又退回来了),所以还是选 Windows。但若谁说 Windows 卡成翔我还是会急的,尼玛你自己装一大堆流氓软件还怪 Windows 卡,你让我怎么办?
誰說 Windows 會卡?我在虛擬機里用 Windows,內存 CPU 顯存 都很緊張,內存只能分到 4G,CPU 只有分到兩個核心四線程,顯存只有分到 768M,開 Chrone 玩 3D 遊戲,從未覺卡(曾經那個遊戲把我舊電腦2G內存佔滿了,然後沒內存,崩潰!)
內存佔用高會卡的原因是,被迫使用虛擬內存,也就是與硬盤交換空間,硬盤,持續 IO,卡死你。
而並不是說內存佔用高一定會卡。只要不使用虛擬內存,比如即時回收了佔用的空間,就不會卡。
就算使用虛擬內存,你硬盤足夠快,也沒問題。PCIe SSD 試試?
你看 iOS,根本沒有虛擬內存,物理內存 1G,卡嗎?只是經常丟失之前看過的網頁要重新加載罷了。
另外,關於裝 XX衛士 卡成翔的原因,是 XX衛士 inline hook 了系統關鍵函數,KiFastCallEntry,這個函數太關鍵了,以至於XX衛士的響應速度成爲了系統響應速度的上限。據說,有些安裝只要幾分鐘的軟件,在 Hook 了 KiFastCallEntry 之後,要長達幾個小時之久!
這也是爲什麼XX不完美支持Win7 x64的原因——PatchGuard導致XX難以像以前一樣無法無天。