遇到一個有趣的問題:買了一條8GB的內存,在魯大師查看只有7.8GB,但系統顯示的卻更少了,用戶懷疑是不是被騙了。
猜測1:難道是內存漲價,廠商把7.8GB的內存充當8GB,謀取暴利?答案是不存在的,內存由Rank、chip和bank組成,就這0.2GB連bank都組成不了,更別說chip了。要知道,chip是經銷商偷梁換柱的最小單位!
猜測2:微軟幹的?微軟表示很無辜,倒是想佔用,但那0.2GB能幹啥,要就會多要了,那還至於老往硬碟裡面倒騰嗎?於是,微軟將矛頭指向了BIOS。
猜測3:在「證據」之下,BIOS說出了「作案過程」:BIOS負責內存的初始化、測試並且最後向作業系統報告內存情況,看似很風光,但工作並不輕鬆,有不少相關單位(核顯、ME等等)都想在其中分一杯羹。對此,BIOS只能在內存中偷一些給它們用了。
但是,BIOS自己也要用內存,雖然大部分在啟動OS時都還回去了(Boot time memory),但還是留了些自用(Reserved, runtime memory)。這些部分,BIOS在最後給作業系統的交割清單中都標明要用,OS不得侵犯,否則死機啊啥的BIOS就不管了!
看到這裡,或許你對消失的內存有一定了解了吧?
但除了上面說到的,還有別的一些原因。不知大家是否聽說過這麼一個調侃:無論硬體給了你什麼新能力,軟體都會把它拿走!其實,這句話是有一定道理的,這和軟體的內存需求和硬體額摩爾定律走勢高度相關,在這裡我們需要了解到的是,如果硬體提供了更大的內存,軟體總是傾向於使用它,但這並不一定就是壞事哦。
另外,有關「SuperFetch」大家知道嗎?SuperFetch會根據用戶使用歷史記錄,保存一個常用軟體清單,在開機後就把根據總內存大小,將合理的一部分內存用來預調入最常用的幾個軟體。從而大大減小軟體打開速度和響應度,提升用戶體驗。如果總內存大,預調入的軟體也多,內存佔用多;反之,內存佔用少。
比如谷歌瀏覽器,它會根據總內存大小,開啟網頁預加載,這也會佔用大量內存。當然,火狐瀏覽器也有類似的機制。
或許,這就是電腦這麼吃內存的原因吧!但請放心,在內存緊缺的時候,這些內存會被swap出去,並不會佔著不動。這種機制能提高軟體和頁面加載速度,提升用戶體驗,對此無須過於擔心。