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%

相关文章
相关标签/搜索