本文鏈接:
控制臺輸入free -m命令:
total used free shared buffers cached。total used free shared buffers cached。total used free shared buffers cached。
Mem: 64267 33905 22704 286 7658 29509
Swap: 32416 48 32367
第二行
total:系統(tǒng)內(nèi)存總量。
used:%20系統(tǒng)已使用的內(nèi)存。
free:系統(tǒng)未使用內(nèi)存。
shared:多個進(jìn)程共享內(nèi)存。
參數(shù)lpbuf用于指定要寫到文件中的數(shù)據(jù)緩沖區(qū)的指針,ncount表示從數(shù)據(jù)緩沖區(qū)傳送的字節(jié)數(shù)。先舉例說說“按重要級分割”,在網(wǎng)絡(luò)游戲中,同樣是角色的數(shù)據(jù),有些數(shù)據(jù)的變化可能會每次修改都立刻回寫到數(shù)據(jù)庫(清理寫緩存)linux命令,其他一些數(shù)據(jù)的變化會延遲一段時間,甚至有些數(shù)據(jù)直到角色退出游戲才回寫,如玩家的等級變化(升級了),武器裝備的獲得和消耗,這些玩家非?粗氐臄(shù)據(jù),基本上會立刻回寫,這些就是所謂最重要的緩存數(shù)據(jù)。緩沖這個詞意思是,緩沖信道不僅可以流通數(shù)據(jù),還可以緩存數(shù)據(jù)。
available:可用內(nèi)存。
第三行
total:交換區(qū)內(nèi)存總量。
used:交換區(qū)已使用的內(nèi)存。
free:交換區(qū)未使用的內(nèi)存。
我的理解,當(dāng)用delete來釋放用new int[]申請的內(nèi)存空間時,由于其為基本數(shù)據(jù)類型沒有析構(gòu)函數(shù),所以使用delete與delete []相同,兩者都會釋放申請的內(nèi)存空間,若是自定義的數(shù)據(jù)類型,有析構(gòu)函數(shù)時linux命令,用new []申請的空間,必須要用delete []來釋放,因為要delete []時會逐一調(diào)用對象數(shù)組的析構(gòu)函數(shù),然后釋放空間,如果用delete,則只會調(diào)用第一個對象的析構(gòu)函數(shù),后面對象的析構(gòu)函數(shù)沒有被調(diào)用,那么其空間是否釋放了呢。隨后1kb的內(nèi)存使用完畢需要釋放,系統(tǒng)會按順序把1kb內(nèi)存插入到空閑內(nèi)存鏈表中。若應(yīng)用程序又需要申請3 kb的內(nèi)存,而在空閑內(nèi)存塊鏈表中能滿足申請內(nèi)存要求的最小空閑內(nèi)存塊為5kb,因此把5kb內(nèi)存拆分為2部分,3kb部分用于滿足申請內(nèi)存的需要,2kb部分作為新的空閑內(nèi)存塊插入鏈表。
used+free+buff/cache = 33905 + 22704 +7658 = 64267。