自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭開JVM中TLAB中的神秘面紗

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

[[413891]]

本文轉(zhuǎn)載自微信公眾號「一個程序員的成長」,作者一個程序員的成長。轉(zhuǎn)載本文請聯(lián)系一個程序員的成長公眾號。

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

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

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

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

答:可能存在;

new Object();

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

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

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

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

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

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

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

總結(jié)

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

 

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

 

責(zé)任編輯:武曉燕 來源: 一個程序員的成長
相關(guān)推薦

2015-08-20 13:43:17

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

2013-07-19 14:00:13

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

2013-07-19 14:35:59

iOS中BlockiOS開發(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-06-01 09:04:44

Google WaveWeb

2018-03-01 09:33:05

軟件定義存儲

2016-04-06 09:27:10

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

2009-09-15 15:34:33

Google Fast

2023-11-02 09:55:40

2024-08-15 08:56:18

2016-11-16 09:06:59

2024-02-14 09:00:00

機(jī)器學(xué)習(xí)索引ChatGPT

2025-01-07 15:07:13

2010-05-11 10:19:17

VMforceJava云計(jì)算

2020-04-14 10:44:01

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

2021-09-17 15:54:41

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

2010-06-17 10:53:25

桌面虛擬化
點(diǎn)贊
收藏

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