JVM内存模型-浅析

来源:互联网 发布:淘宝客链接转化工具 编辑:程序博客网 时间:2024/06/05 10:35

JVM内存模型

Java中通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main memory,而每个线程又单独的有自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交由线程处理(操作码+操作数)。

  • 程序计数器-当前线程所执行的字节码的行号指示器
  • 本地方法栈-虚拟机使用到的Native 方法服务
  • Java 堆-最主要的内存区域
  • Java 栈
  • 方法区

Java堆-存储结构

  • 新生代-(Eden,S1,S2)
  • 老年代-(Old Generation)
  • 永久带-运行时常量和内部字符串,永久代Hotspot虚拟机特有的概念

注意:在JDK1.8中,持久代已经更名为了元空间。

常用的JVM参数设定

常用的参数设定

  • -Xms1024M ,最小堆内存(默认为物理内存的1/64但小于1G),设置:-Xms1024M
  • -Xmx1024M,最大堆内存(默认是物理内存的1/4但小于1G),设置:-Xmx1024M
  • -XX:PermSize=64M 设置最小分配永久代空间,设置:-XX:PermSize=64M
  • -XX:MaxPermSize=128M 设置最大分配永久代空间,设置:-XX:MaxPermSize=128M
  • JDK1.8修改为-XX:MetaspaceSize=200m;-XX:MaxMetaspaceSize=256m;
原创粉丝点击