Skip to content

java memory model

upan edited this page Jun 20, 2016 · 16 revisions

Java 内存模型

栈(Stack)

相关启动参数:

-Xss 每个线程的栈大小

根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。一般小的应用,如果栈不是很深,应该是128k够用,大的应用建议使用256k。这个选项对性能影响比较大。

本地方法栈

方法区(Method Area)

相关启动参数

-XX:PermSize 设置Perm区的初始大小,默认物理内存的1/64 -XX:MaxPermSize 设置Perm区的最大值,物理内存的1/4 -XX:MaxTenuringThreshold 设置对象在新生代中存活的次数,如果设置为0的话,则年清代对象不经过Survivor区,直接进入老年代。对于老年代比较多的应用可以提高效率。如果将此值设置为一个较大值,则年清代对象会在Survivor区进行多次复制,这样可以增加对像在年清代的存活时间,增加在年清代即呗回收的概率

堆(Heap)

相关启动参数

-Xms 设置堆内存初始化大小,默认是物理内存的1/64但是小于1G -Xmx 设置堆内存最大值,默认是物理内存的1/4但小于1G,服务器一般设置 -Xms、-Xmx相等以避免每次GC后调整堆的大小

Clone this wiki locally