jvm内存模型

阅读更多

 

1、程序计数器

  每个java线程有自己独立的程序计数器,用于存储下一条要执行的指令。

 

2、java堆

  用于存储对像和数组。分为新生代和老年代。新生代又分为初生代、幸存代。


  java堆的调优参数:

  -Xms:最小堆内存
  -Xmx:最大堆内存
  -Xmn:新生代内存
  -XX:NewSize:新生代初始内存
  -XX:MaxNewSize:新生代最大内存

  -XX:SurvivorRatio 调节初生代与幸存代的内存比例,幸存代又分为s0,s1,内存大小相同。
  -XX:NewRatio 调节新生代与老年代的内存比例  

 

3、java栈

  java栈也是线程的私有空间,与线程同时被创建,用于保存方法的局部变量、部分结果,并参与方法的调用和返回。
  
  java栈调优参数:
  -Xss:线程栈大小


4、方法区

  方法区保存类的类型信息(类名、修饰符、接口)、常量池、域信息、方法信息。

  持久代调优参数:

  -XX:PermSize:持久代初始内存
  -XX:MaxPermSize:持久代最大内存
  -XX:NewSize:新生代初始内存

 

5、本地方法栈

  与java栈的功能类似,管理本地方法的调用。

你可能感兴趣的:(内存模型,jvm,性能优化)