2016 - 2024

感恩一路有你

java虚拟机最大最小内存参数设置 java虚拟机内存模型?

浏览量:4330 时间:2023-07-07 21:54:30 作者:采采

java虚拟机内存模型?

的。方法区域也被称为 "永久世代 "和 "非堆 "。它用于存储虚拟机加载的类信息、常量和静态变量,是每个线程共享的内存区域。默认的最小值是16MB,最大值是64MB。可以用参数-XXF:MaxPermSize来限制方法区的大小.运行时常量池:它是方法区的一部分。除了类的版本、字段、方法、接口等描述信息,还有一个常量池,用于存储编译器生成的各种符号引用,在类加载后会放入方法区的运行时常量池。?虚拟机堆栈描述了java方法执行的内存模型:当每个方法被执行时,一个 "堆栈框架和用来存储局部变量表(包括参数)、操作栈、方法出口等信息。每个方法都被调用到执行结束,对应一个栈帧在虚拟机栈中从进入栈到退出栈的过程。声明期和线程的声明期一样,是线程私有的。局部变量表存储了编译器已知的各种基本数据类型(boolean,byte,char,short,int,*noat,long,double)和对象引用(引用指针,不是对象本身),其中64位的long和double数据会占用两个局部变量的空间,其余数据类型只占用一个。局部变量表所需的内存空间是在编译过程中分配的。在进入一个方法时,该方法需要在堆栈框架中分配多少个局部变量是完全确定的,在运行时堆栈框架不会改变局部变量表的大小空间。?本地方法栈基本上类似于虚拟机栈,除了虚拟机栈服务于由虚拟机执行的java方法,而本地方法栈服务于Nativ e方法。?堆也叫java堆。GC堆是java虚拟机管理的最大内存区域,也是所有线程共享的内存区域。它在JVM启动时创建。这个内存区域存储对象实例和数组(所有新对象)。其大小由参数-Xms(最小值)和-Xmx(最大值)设置,其中-Xms是JVM启动时请求的最小内存,默认为操作系统物理内存的1/64但小于1g,-Xmx是JVM可以申请的最大内存,默认为物理内存的1/4但小于1G。默认情况下,当空闲堆内存小于40%时,JVM会将堆增加到-xm。当空闲堆内存大于70%时,JVM会将堆大小减小到-Xms指定的大小,这可以通过xx :maxheap实现。用于指定该比较列的注释。对于正在运行的系统,为了避免在运行时频繁调整堆的大小,通常会将-Xm s和-Xmx的值设置为相同。因为现在的收集者采用分代收集算法,所以堆分为新生代和旧时代。新生代主要存储新创建的对象和尚未进入旧时代的对象。旧时代存储了许多新一代GC(次要GC)遗留下来的对象。。新生代:程序新创建的对象都是从新生始分配内存的,新生代由伊甸园空间和两个大小相同的幸存者空间组成(通常称为S0和S1或者From和T)。),新一代的大小可以通过-Xmn参数指定,伊甸园空间和幸存者空间的大小也可以通过-xx:survival调整。Old age:用于存储经历了许多代GC的对象,比如缓存对象。新创建的对象也可以直接进入旧时代。主要有两种情况:①。通过设置启动参数-xx :p

学习java虚拟机有什么用?

学习java虚拟机主要是了解运行时环境的原理,以便后期优化程序或者虚拟机本身的时候用到。

当初我们软件开发完成后,虚拟机本身的默认配置就足够了,不需要太多用户。但是,当我们的软件越来越复杂,用户数量不断上升的时候,我们会发现虚拟机本身会成为一个性能瓶颈。然后我们需要优化虚拟机。怎么优化呢?当然,我们需要知道虚拟机是如何工作的,内存是如何管理的,类是如何加载的等等。然后通过jdk s自己的工具或者其他工具来分析我们的软件程序,找到瓶颈,进行有针对性的优化。

大小 方法 虚拟机 内存 对象

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。