偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

揭開(kāi)JVM中TLAB中的神秘面紗

云計(jì)算 虛擬化
在開(kāi)始文章之前,我這里暫且認(rèn)為大家已經(jīng)明白了JVM創(chuàng)建對(duì)象分配內(nèi)存地址的流程,也知道JVM內(nèi)存劃分?;谌说乐髁x我還是放一張圖吧,大家對(duì)照著看。

[[413891]]

本文轉(zhuǎn)載自微信公眾號(hào)「一個(gè)程序員的成長(zhǎng)」,作者一個(gè)程序員的成長(zhǎng)。轉(zhuǎn)載本文請(qǐng)聯(lián)系一個(gè)程序員的成長(zhǎng)公眾號(hào)。

在開(kāi)始文章之前,我這里暫且認(rèn)為大家已經(jīng)明白了JVM創(chuàng)建對(duì)象分配內(nèi)存地址的流程,也知道JVM內(nèi)存劃分?;谌说乐髁x我還是放一張圖吧,大家對(duì)照著看。

JVM內(nèi)存結(jié)構(gòu)

堆內(nèi)存劃分結(jié)構(gòu)

堆區(qū)分配內(nèi)存是否存在多線程安全問(wèn)題?

答:可能存在;

new Object();

上述操作我們都知道它最終需要在堆內(nèi)存中開(kāi)辟一塊內(nèi)存空間,那么想這么一個(gè)問(wèn)題,堆區(qū)是所有線程共享的,那么在JVM頻繁創(chuàng)建對(duì)象的時(shí)候,并發(fā)情況下在堆內(nèi)存中開(kāi)辟空間是不是存在安全問(wèn)題。

那么為了解決這個(gè)問(wèn)題我們首先想到的就是加鎖,但是加鎖存在一個(gè)問(wèn)題,就是影響性能。

TLAB出現(xiàn)(Thread Local Allocation Buffer)

基于上面的問(wèn)題,從而引出了TLAB,強(qiáng)行翻譯一下就是線程本地分配緩沖區(qū),首先呢先看張圖

聲明:在堆內(nèi)存中分配空間,首先是在eden區(qū)進(jìn)行分配,并不是直接分配在老年代,內(nèi)存分配結(jié)束之后,沒(méi)進(jìn)行一次Yong GC,如果對(duì)象沒(méi)有被回收,那么他的存活次數(shù)就會(huì) +1,如果這個(gè)次數(shù)達(dá)到15次,那么這個(gè)對(duì)象晉升到老年代。

那么我們知道了對(duì)象分配首先是在eden區(qū)進(jìn)行的,那么也不難理解上面的圖,我們?cè)趀den區(qū)域劃分出來(lái)一塊區(qū)域,我們稱(chēng)之為T(mén)LAB,每一個(gè)TLAB都是現(xiàn)成私有的,那么并發(fā)創(chuàng)建對(duì)象的時(shí)候其實(shí)也就不需要進(jìn)行加鎖這樣的操作了,這樣現(xiàn)成安全問(wèn)題就解決了。

如果分配的這些TLAB空間被使用完了或者對(duì)象所需要額內(nèi)存空間大于TLAB所能提供的空間,那么只能在公用的eden區(qū)或者老年代分配內(nèi)存空間了。

總結(jié)

  • 1、JVM首選TLAB進(jìn)行內(nèi)存空間的分配;
  • 2、TLAB占用整個(gè)eden區(qū)域的1%,這個(gè)值也可以通過(guò)參數(shù)自定義;

 

通過(guò)這個(gè)問(wèn)題也可以推理出另外一個(gè)問(wèn)題,堆區(qū)在嚴(yán)格意義上說(shuō)不是線程共享的。

 

責(zé)任編輯:武曉燕 來(lái)源: 一個(gè)程序員的成長(zhǎng)
相關(guān)推薦

2015-08-20 13:43:17

NFV網(wǎng)絡(luò)功能虛擬化

2013-07-19 14:00:13

iOS中BlockiOS開(kāi)發(fā)學(xué)習(xí)

2013-07-19 14:35:59

iOS中BlockiOS開(kāi)發(fā)學(xué)習(xí)

2010-05-17 09:13:35

2014-03-12 11:11:39

Storage vMo虛擬機(jī)

2021-06-07 08:18:12

云計(jì)算云端阿里云

2010-05-26 19:12:41

SVN沖突

2009-09-15 15:34:33

Google Fast

2023-11-02 09:55:40

2016-04-06 09:27:10

runtime解密學(xué)習(xí)

2009-06-01 09:04:44

Google WaveWeb

2018-03-01 09:33:05

軟件定義存儲(chǔ)

2024-08-15 08:56:18

2021-09-17 15:54:41

深度學(xué)習(xí)機(jī)器學(xué)習(xí)人工智能

2020-04-14 10:44:01

區(qū)塊鏈滲透測(cè)試比特幣

2021-08-11 09:01:48

智能指針Box

2010-06-17 10:53:25

桌面虛擬化

2011-08-02 08:59:53

2017-10-16 05:56:00

2021-05-25 09:01:21

Linux命令Bash histor
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)