国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
6.GC指對(duì)象的創(chuàng)建

 

對(duì)象創(chuàng)建

hotspot vm中,有兩個(gè)方式來(lái)提升申請(qǐng)內(nèi)存空間的速度,分別是bumo the pointer 突出指針以及TLABS(Thread-Local Allocation Buffers)

1.1 BTP

BTP總是指向最后創(chuàng)建的對(duì)象地址,這樣當(dāng)有新的對(duì)象需要?jiǎng)?chuàng)建的時(shí)候,只需要計(jì)算總的和最后一個(gè)就能得出可用空間,如果足夠,則申請(qǐng)空間,并且移動(dòng)BTP


1.2 TLAB

對(duì)象內(nèi)存的創(chuàng)建在單線程下比較簡(jiǎn)單,但是在多線程環(huán)境下,需要線程安全的操作,那就必須使用鎖,這樣在高并發(fā)下,性能就會(huì)有巨大的下降,TLAB就是為了解決這種情況,他為每個(gè)線程劃分一段較小的空間,這樣在整個(gè)堆上就不會(huì)有沖突,并且也不必使用同步或者某些原子操作來(lái)保證線程安全。這種模式下每個(gè)tlab區(qū)的大小,主要受限于幾個(gè)參數(shù):線程數(shù),申請(qǐng)空間的頻率,堆大小,在java7中,為了考慮這些因?yàn)椋?/font>tlab部分已經(jīng)有幾千行的代碼,及其復(fù)雜

使用PrintTLAB后的日志解釋

1.3 HAB

每個(gè)區(qū)太大,或者線程數(shù)太多,都會(huì)使得產(chǎn)生過(guò)多的碎片,這回導(dǎo)致更多的gc產(chǎn)生,實(shí)際上還是影響性能,現(xiàn)在有一種分層分配緩存hierarchical allocation buffers,可以參考


TLAB類(lèi)似于2層的結(jié)構(gòu),即heaptlabs,在HAB中,分為了43)層,heap,processcore,thread

PLAB是為多核處理器準(zhǔn)備的,線程跑在不同核,但是相同處理器的情況下,共享PLABCLAB是給核分配的,在相同核上的線程共享CLAB;PLABCLAB都應(yīng)該是TLAB的整數(shù)倍,來(lái)避免碎片;訪問(wèn)流程如下:根據(jù)線程當(dāng)前所在的處理器以及核,在這個(gè)PLAB以及CLAB下申請(qǐng)空間

這種方式明顯的好處就是可以線程的多少不會(huì)有太多的影響,也不用考慮太多的TLAB的大小,一般申請(qǐng)較大的PLABCLAB,較小的TLAB即可


Hierarchical PLABs, CLABs, TLABs in Hotspot


因?yàn)?/span>TLAB的方式受到線程數(shù)的限制,過(guò)小會(huì)降低效率,過(guò)大容易造成浪費(fèi);按照分層的設(shè)計(jì)模型,分為處理器(process),核(core),線程(Thread)的方式劃分空間,這種方式不受限于線程數(shù),一般只要分配較大的PLAB,CLAB,以及較小的TLAB即可

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服