PDA

瀏覽完整版本 : [主題] 給大家參考一下,非常有意思的轉貼文章..管理記憶體!!



leeanfu
03-30-2013, 19:06
給大家參考一下,非常有意思的轉貼文章..管理記憶體!!

看完以下文章,大家還覺得記憶體不夠用嗎?


https://cache.iphone4.tw/phpupload/savefiles/201303300705375c050284669c4bc66f207e41059f05b9.PNG

常看見大家在文章裡面曬自己的記憶體監控圖片。往往是發現可用空間很小,覺得8G記憶體都不夠用。實際上這個問題是要綜合考慮的,並不一定就不夠了。
在這裡給大家通俗簡單地講講Mac記憶體管理機制,希望對大家有用,歡迎大家指正。

Mac OS的記憶體管理機制是類同於Unix和Linux的,屬於利用記憶體暫存來提供效率的,完全不同於Windows,應該來說比Windows的機制要先進。

(並不是Windows做不到,只不過是為了兼容古老的程式,不得已而不能改用更好的暫存機制)。

我們先來瞭解兩個基本前提:1:數據從記憶體中讀取要遠遠快於從硬碟中讀取,哪怕是固態硬碟(SSD),速度都是遠不如記憶體的。

2:如果剛讀取一個程式或數據,那麼它會有很大繼續會被再次讀取。這可以理解為你往往會常用幾個程式,這幾個程式會被頻繁調用。

在這個前提之下我們就好理解下面的內容了。

Mac在偵測到系統記憶體數量之後,會根據記憶體大小把硬碟中常用的程式數據先讀入到記憶體中,作為暫存來提高讀取效率。也就是說,

你插入多大的記憶體,它都會充分利用到這些記憶體,讀入合適比例的數據進去。這就是大家發現插多少記憶體都吃得快的原因。

我們查看「活動監視器」,發現記憶體數據分四種:可用空間、聯動、活躍、非活躍。

其中可用空間是指沒有利用的記憶體,可自由分配。聯動部分讀入的是操作系統內核程式和數據,以及打開程式的佔用。這個是不會被釋放的,是固定佔用。

活躍部分是指有用且常用的程式數據,簡單地可以理解為你現在常打開的程式佔用的。這部分是高速暫存。

非活躍部分是指有用但不常用的數據,是為你可能會用到的數據做預備的,一旦你使用這個程式,那麼就會直接從記憶體讀取,

而不會從硬碟讀取,速度會快很多(優越性就在這裡)。聯動+活躍+非活躍=已使用記憶體。

知道了這些,我們就可以科學分析記憶體佔用情況(關於數據更改產生髒數據,如何寫入硬碟等太專業,在這裡不說了,不影響理解)。

看記憶體夠不夠用,主要看活躍記憶體和非活躍記憶體。如果你的活躍記憶體佔用量大,說明你常用程式多或使用的程式記憶體佔用量大,是需要大記憶體的用戶。

但對於是否需要加記憶體,還需要考慮非活躍的記憶體,非活躍的記憶體其實是你現在並沒有立即使用到的,是為你可能使用到的程式做暫存準備。

如果非活躍的記憶體還很多,說明你記憶體並不缺少,足夠用。而如果非活動記憶體少,再看看可用記憶體還有多少。如果可用記憶體也少,那麼你真的是需要加記憶體了。

如果可用記憶體還很多,那麼系統會自動再讀入一些數據到非活躍部分,你同樣也是不缺少記憶體的。講到這裡,大家應該明白了如何看自己的Mac記憶體是否吃緊了,

我想我講得還算簡單明白吧。

Mac OS的記憶體管理機制還是很好的,暫存機制不光使用在操作系統,在很多軟體中都是利用這種方法提高效率。比如搜尋引擎和數據庫軟體。

我們常看見google說它在0。00001秒查到幾萬筆結果,好NB哦,其實也是直接從暫存中讀取才會這麼快。

Oracle數據庫也是利用暫存機制達到快速檢索數據的目的(很多人抱怨Oracle插多少記憶體都佔用一大堆也是沒搞清楚這個暫存機制)。

說這些並不是廢話,我要說的是我們經常用一些記憶體清理工具來清理記憶體,往往清完後,可用記憶體數大大增加,不明原理的都會覺得這下系統就快了

!錯!這樣反而慢!為啥?因為它清理的都是非活躍記憶體,等於是把暫存數據都去掉了,這樣,當你需要這部分程式數據時,系統只有從硬碟讀取了,

這個速度比從非活躍記憶體中讀取慢得多!所以大家使用清理工具一定要慎重。講了這麼多,不知道大家清楚沒有。有什麼講得不好的,歡迎大家交流指正,謝謝!

sukevin99
04-06-2013, 11:27
請問大大 可以分享通知中心的檔案給我嗎? 你改得真好
(遠目)

lin888899
04-06-2013, 14:15
請問大大,您的月曆插件跟下方那兩個數據插件名稱是?

adonis0602
04-06-2013, 14:34
chinese calendar pro for notification
mufunnc