日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
揭開(kāi)JVM中TLAB中的神秘面紗

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

作者:一個(gè)程序員的成長(zhǎng) 2021-07-28 21:49:01

云計(jì)算

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

在嶗山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,嶗山網(wǎng)站建設(shè)費(fèi)用合理。

本文轉(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ū)域,我們稱之為TLAB,每一個(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ō)不是線程共享的。


當(dāng)前名稱:揭開(kāi)JVM中TLAB中的神秘面紗
文章分享:http://m.5511xx.com/article/ccspjge.html