JVM-Heap

32位操做系統最大內存爲2GB,64位操做系統理論上沒有限制,java

heap:new對象和數組數組

-Xms 啓動時默認申請物理內存的1/64,但小於1GB
操作系統

-Xmx 啓動時默認申請特理內存的1/4,但小於1GB線程

默認空於heap小於40%時,heap會按要配置增長內存分配,能夠經過-XX:MinHeapFreeRatio=調節比例對象

默認heap佔用小於70%時,heap會減小內存,-XX:MaxHeapFreeRatio=調節比例內存

內存分代管理 1.2之後:io

New Generation (Eden, S0, S1) 8:1:1thread

Old(Tenuring) Generation效率

Heap = New + Old配置

java對象所佔用的內存主要從heap上進行分配,heap是全部線程共享的,所以在heap分配內存時須要進行加鎖。

爲了提高內存分配效率,分爲每一個新建立的線程在eden上分配一塊獨立的空間,這塊空間稱爲TLAB(thread local allocation buffer),默認佔1%

相關文章
相關標籤/搜索