在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  Linux/ JAVA8里的native heap究竟是個(gè)什么概念?

JAVA8里的native heap究竟是個(gè)什么概念?

這個(gè)native heap和機(jī)器的物理內(nèi)存,虛擬內(nèi)存,linux free命令下:的

         total       used       free     shared    buffers     cached
       

以及top命令下的:

   VIRT  RES  SHR 
   

有何關(guān)系?

回答
編輯回答
孤島

應(yīng)該說(shuō)這幾個(gè)概念上都不太一樣, 簡(jiǎn)單地說(shuō):沒(méi)有什么關(guān)系.

free下的輸出是操作系統(tǒng)當(dāng)前的狀態(tài), 全部進(jìn)程內(nèi)存使用情況的累加:

total:表示物理內(nèi)存總量(total = used + free)
used:表示總計(jì)分配給緩存(包含buffers 與cache )使用的數(shù)量,但其中可能部分緩存并未實(shí)際使用。
free:未被分配的內(nèi)存。
shared:共享內(nèi)存,主要用于tmpfs。
buffers:系統(tǒng)分配但未被使用的buffers 數(shù)量。
cached:系統(tǒng)分配但未被使用的cache 數(shù)量。

top分別列出每個(gè)進(jìn)行的使用情況:

VIRT 意味著進(jìn)程虛擬空間的大小, 是真實(shí)使用的內(nèi)存,加上映射進(jìn)程自己使用的內(nèi)存(如, X server使用顯卡內(nèi)存), 加上映射磁盤(pán)文件使用的內(nèi)存(主要是加載共享程序庫(kù)文件), 加上與其他進(jìn)程共享的內(nèi)存. VIRT代表進(jìn)程當(dāng)前時(shí)刻有多少內(nèi)存可以訪問(wèn).

RES 意味駐留內(nèi)存大小, 是當(dāng)前進(jìn)程真正占用物理內(nèi)存的精確反映. (直接與%MEM列相對(duì)應(yīng).) RES始終要比VIRT小, 因?yàn)槎鄶?shù)程序依賴C庫(kù)文件.

SHR 表示VIRT里有多少其實(shí)是共享部分(庫(kù)文件使用的內(nèi)存). 關(guān)系到庫(kù)文件里, 并不是整個(gè)的庫(kù)文件會(huì)駐留. 如, 如果程序僅用到了庫(kù)文件里的少數(shù)函數(shù), 整個(gè)庫(kù)文件會(huì)映射并被計(jì)算到VIRT和SHR里, 但只有庫(kù)文件包含用到的函數(shù)那部分真正加載到內(nèi)存并被計(jì)算到RES里.

至于java的native memory space,只是java進(jìn)程的內(nèi)部分配關(guān)系.
參見(jiàn)下圖

java-heap

2017年11月19日 15:10