關於linux free m的理解

2021-09-02 18:16:29 字數 775 閱讀 4086

先上圖

講解一下什麼是buffers和cached

buffers:cpu要處理的資料是存放在buffers中的

cached:處理的資料一般都是將硬碟的資料放在記憶體中來處理,這裡講的記憶體就是cached,也就是說硬碟中(外存)要處理的資料是存放在cached中的

那麼上面裡面是什麼含義呢?

記憶體總量total(圖中15762)=used(圖中11793) + free(圖中3968)

然而真正被使用的記憶體並不是這樣子的,這裡的used值11793其實是包含快取的空間(buffers和cached),而第一行中的buffers(圖中202)和cached(圖中4588)正是used裡面包含的快取空間總量,因此真正被使用的記憶體空間應該是減掉這部分的快取量也就是

-buffers/cache(圖中7951) = used(圖中11793) - buffers(圖中202)- cached(圖中4588)

因此,上面的free(圖中3968)也並不是真正空閒的記憶體量,而是已經除去快取的空間(buffers和cached)的空閒記憶體量,因此要把快取的空間加上,也就是

+buffers/cache(圖中7951) = free(圖中3968) - buffers(圖中202)- cached(圖中4588)

通過上面的推論,我們可以得知,其實-buffers/cache才是系統真正用掉的記憶體,+buffers/cache才是系統真正空閒的記憶體

關於this的理解

this是乙個關鍵字,它不允許更改或者賦值,任何函式只要作為方法呼叫時實際上都會傳入乙個隱式的實參 這個實參是乙個物件,方法呼叫的母體就是這個物件 this 1.當函式作為乙個方法呼叫時 呼叫的母體就是該物件 2.當作普通函式呼叫時 呼叫的母體是window 3.閉包裡面的this var obj ...

關於getchar的理解

最近在看k r的c語言程式設計,看到有個地方很不是理解,查閱了較多的資料後才恍然大悟,記錄一下先。程式是比較常見的從控制台獲得一行,並返回這行的長度。程式如下 int getline char s,int lim 開始對getchar這個函式不是很理解,為什麼每次迴圈都讀取乙個 char 既然我是個...

關於委託的理解

學習c 有一段時間了,對委託一直不是很理解,試著說一下。委託是對方法的傳遞呼叫,即把方法像引數一樣傳遞。我們知道,方法具有引數。這個引數可以是基本資料型別,如int,double等,也可以是引用型別 即類 包括系統自帶的和自定義的。例如,我們有個方法add,它的引數是兩個int型別整數。int ad...