JVM運行內(nèi)存分類

圖片.png

一孟害。程序計數(shù)器

java線程私有的喇喉,類似于操作系統(tǒng)里的PC計數(shù)器承粤,可以看做是當前線程所執(zhí)行的字節(jié)碼的行號指示器虑乖。

如果線程正在執(zhí)行的是一個java方法懦趋,這個計數(shù)器記錄的正在執(zhí)行的虛擬機字節(jié)碼指令的地址。

如果正在執(zhí)行的是native方法疹味,這個計數(shù)器值則為空仅叫。 undefined

此內(nèi)存區(qū)域是唯一一個在java虛擬規(guī)范中沒有規(guī)定任何OutOfMemoryError情況的區(qū)域

二。虛擬機棧(棧內(nèi)存)

java線程私有糙捺,虛擬機棧描述的是java方法執(zhí)行的內(nèi)存模型诫咱。

每個方法在執(zhí)行的時候,都會創(chuàng)建一個棧幀用于存儲局部變量洪灯、操作數(shù)坎缭、動態(tài)鏈接、方法出口等信息签钩。

每個方法調(diào)用都意味著一個棧幀在虛擬機棧中入棧到出棧的過程掏呼。

三、本地方法棧

和java虛擬機棧的作用類似铅檩。區(qū)別是該區(qū)域為JVM提供使用Native方法的服務(wù)憎夷。

四、堆內(nèi)存

所有線程共享的一塊區(qū)域昧旨,垃圾回收器管理的主要區(qū)域拾给。

目前主要垃圾回收算法都是分代收集算法,所以java堆中還可以細分為:新生代和老年代兔沃,再細致一點的還有eden區(qū)蒋得,from survivor、to survivor粘拾,默認情況下是8:1:1的比例窄锅。

根據(jù)java虛擬機規(guī)范的規(guī)定,java堆可以處于物理上不連續(xù)的內(nèi)存空間中缰雇,只要邏輯上是連續(xù)的即可入偷,就像我們的磁盤一樣。

五械哟、方法區(qū)

各個線程共享的一個區(qū)域疏之,用于存儲虛擬機加載的類信息,常量暇咆、靜態(tài)變量锋爪,即時編譯器編譯后的代碼等數(shù)據(jù)丙曙。

雖然虛擬機規(guī)范中把方法區(qū)描述成堆的一個邏輯部分,但是他卻有一個別名叫Non-heap 非堆其骄,目的是為了與java堆區(qū)分開來亏镰。

運行時常量池。是方法區(qū)的一部分拯爽,用于存放編譯器生成的各種字面量和符號引用索抓。

直接內(nèi)存

direct memory,并不是虛擬機運行時數(shù)據(jù)區(qū)的一部分毯炮,也不是java虛擬機規(guī)范中定義的內(nèi)存區(qū)域逼肯。在1.4中新加入的NIO類,引入了一種基于通道Channel與緩沖區(qū)Buffer的IO方式桃煎,它可以使用native函數(shù)庫直接分配堆外內(nèi)存篮幢,

然后通過一個存儲在java堆中的DirectByteBuffer對象作為這塊內(nèi)存的引用進行操作。這樣能在一些場景中顯著提高性能为迈,因為避免了在java堆和Nativa堆中來回復(fù)制數(shù)據(jù)三椿。

本機直接內(nèi)存的分配不會受到Java堆大小的限制,受到本機總內(nèi)存的大小限制曲尸。配置虛擬機參數(shù)時赋续,不要忽略直接內(nèi)存,防止出現(xiàn)OOM異常另患。

比較

直接內(nèi)存申請空間耗費更高的性能纽乱,當頻繁申請到一定量時尤為明顯。

直接內(nèi)存IO 讀寫的性能要優(yōu)于普通的堆內(nèi)存昆箕,在多次讀寫操作的情況下差異明顯鸦列。

后續(xù)發(fā)展

JDK7:

存儲在永久代的部分數(shù)據(jù)轉(zhuǎn)移到了JVM heap或者是Native heap中。

JDK8:

廢棄了永久代PermGen鹏倘,新增Metaspace元數(shù)據(jù)區(qū)

方法區(qū)在Metaspace中了薯嗤。

MetaSpace大小默認沒有限制,一般根據(jù)系統(tǒng)內(nèi)存的大小纤泵,jvm會動態(tài)改變此值骆姐。

可以通過jvm參數(shù)配置:

-XX:MetaspaceSize 分配給類元數(shù)據(jù)空間(以字節(jié)計算)的初始大小。MetaspaceSize的值設(shè)置的太大會延長垃圾回收時間捏题,垃圾

回收過后玻褪,引起下一次垃圾回收的類元數(shù)據(jù)空間的大小可能會變大。

-XX:MaxMteaspaceSize:分配給類元數(shù)據(jù)空間的最大值公荧,超過此值就會觸發(fā)FullGC带射,此值默認沒有限制,但應(yīng)取決于系統(tǒng)內(nèi)存的大小循狰,JVM會動態(tài)改變此值窟社。

個人博客
騰訊云社區(qū)
掘金
CSDN
OSCHINA
公眾號:

wx.jpg

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末券勺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子灿里,更是在濱河造成了極大的恐慌关炼,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钠四,死亡現(xiàn)場離奇詭異盗扒,居然都是意外死亡,警方通過查閱死者的電腦和手機缀去,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甸祭,“玉大人缕碎,你說我怎么就攤上這事〕鼗В” “怎么了咏雌?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長校焦。 經(jīng)常有香客問我赊抖,道長,這世上最難降的妖魔是什么寨典? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任氛雪,我火速辦了婚禮,結(jié)果婚禮上耸成,老公的妹妹穿的比我還像新娘报亩。我一直安慰自己,他們只是感情好井氢,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布弦追。 她就那樣靜靜地躺著,像睡著了一般花竞。 火紅的嫁衣襯著肌膚如雪劲件。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天约急,我揣著相機與錄音零远,去河邊找鬼。 笑死烤宙,一個胖子當著我的面吹牛遍烦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躺枕,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼服猪,長吁一口氣:“原來是場噩夢啊……” “哼供填!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起罢猪,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤近她,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后膳帕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粘捎,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年危彩,在試婚紗的時候發(fā)現(xiàn)自己被綠了攒磨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡汤徽,死狀恐怖娩缰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谒府,我是刑警寧澤拼坎,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站完疫,受9級特大地震影響泰鸡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壳鹤,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一盛龄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧器虾,春花似錦讯嫂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至葛圃,卻和暖如春千扔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背库正。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工曲楚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人褥符。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓龙誊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喷楣。 傳聞我的和親對象是個殘疾皇子趟大,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容