91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是TLAB線程本地分配緩存區?

發布時間:2020-03-25 10:37:07 來源:億速云 閱讀:416 作者:小新 欄目:編程語言

  什么是TLAB線程本地分配緩存區?工作原理分析,TLAB全稱Thread Local Allocation Buffer,即線程本地分配緩存區,是一個線程專用的內存分配區域。在線程初始化時,虛擬機會為每個線程分配一塊TLAB空間,只給當前線程使用。

什么是TLAB線程本地分配緩存區?
  TLAB是虛擬機在堆內存的eden劃分出來的一塊專用空間線程專屬。在虛擬機的TLAB功能啟動的情況下,在線程初始化時,虛擬機會為每個線程分配一塊TLAB空間,只給當前線程使用,這樣每個線程都單獨擁有一個空間,如需要分配內存,在自己的空間上分配,在不存在競爭的情況大大提升分配效率。
  上面描述中"線程專屬"、"只給當前線程使用"、"每個線程單獨擁有"的描述怎么理解呢?因TLAB技術,堆內存并不是完完全全的線程共享,其eden區域中還是有一部分空間是分配給線程獨享的。TLAB是線程獨享的,但只在“分配”這個動作上是線程獨享,在讀取、垃圾回收等動作上是線程共享,且在使用上也沒有什么區別。

什么是TLAB線程本地分配緩存區?
  每個線程在初始化時都會去堆內存中申請一塊TLAB,并不是說這個TLAB區域的內存其他線程就完全無法訪問,其他線程讀取也可以,只不過無法在這個區域中分配內存而已。在TLAB分配之后不影響對象的移動和回收。雖然對象剛開始可能通過TLAB分配內存,存放在Eden區,但是還是會被垃圾回收或者被移到Survivor Space、Old Gen等。
  TLAB是在eden區分配,eden區域本身就不太大,TLAB空間的內存也非常小,默認情況下僅占有整個Eden空間的1%,存在一些大對象是無法在TLAB直接分配。TLAB中無法分配的大對象,對象還是可能在eden區或者老年代等進行分配的,但這種分配就需要進行同步控制,這也是大家經常說的小的對象比大的對象分配起來更加高效。
  如果設置了虛擬機參數 -XX:UseTLAB,在線程初始化時,同時也會申請一塊指定大小的內存,只給當前線程使用,這樣每個線程都單獨擁有一個空間,如果需要分配內存,就在自己的空間上分配就不存在競爭還可以大大提升分配效率。
  TLAB空間的內存非常小,缺省情況下僅占有整個Eden空間的1%,也可以通過選項-XX:TLABWasteTargetPercent設置TLAB空間所占用Eden空間的百分比大小。TLAB的本質其實是三個指針管理的區域:start,top 和 end,每個線程都會從Eden分配一塊空間,例如說100KB,作為自己的TLAB,其中 start 和 end 是占位用的,標識出 eden 里被這個 TLAB 所管理的區域,卡住eden里的一塊空間不讓其它線程來這里分配。

  關于什么是TLAB線程本地分配緩存區就分享到這里了,當然并不止以上和大家分析的辦法,不過小編可以保證其準確性是絕對沒問題的。希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石屏县| 义乌市| 宜丰县| 获嘉县| 盐亭县| 清徐县| 宜兴市| 美姑县| 光泽县| 旅游| 德格县| 兴山县| 永安市| 辉南县| 大关县| 双桥区| 蚌埠市| 上林县| 辛集市| 仙游县| 宁远县| 略阳县| 乐清市| 天等县| 江油市| 定西市| 扎赉特旗| 壤塘县| 惠水县| 景泰县| 五华县| 廉江市| 阳西县| 高淳县| 阿巴嘎旗| 广灵县| 崇信县| 蒙阴县| 安阳县| 偏关县| 临潭县|