公司网站建设怎么wordpress 短代码 if is single
web/
2025/10/5 3:40:25/
文章来源:
公司网站建设怎么,wordpress 短代码 if is single,毕业设计代做淘宝好还是网站好,免费的设计软件一、概述 一个JVM实例只存在一个堆内存#xff0c;堆内存的大小是可以手动调节的。类加载器读取了类文件后#xff0c;需要把类、方法、常变量放到堆内存中#xff0c;保存所有引用类型的真实信息#xff0c;以方便执行器执行#xff0c;堆内存分为三个部分#xff0c;即…
一、概述 一个JVM实例只存在一个堆内存堆内存的大小是可以手动调节的。类加载器读取了类文件后需要把类、方法、常变量放到堆内存中保存所有引用类型的真实信息以方便执行器执行堆内存分为三个部分即新生区、养老区、永久区Java7/元空间Java8 1.1、新生区 新生区是类的诞生、成长、消亡的区域一个类在这里产生应用最后被垃圾回收器收集结束生命。新生区又分为2部分即伊甸区Eden space和幸存者区Survivor space所有的类都是在伊甸区被new出来的。幸存区有2个0区Survivor 0 space和1区(Survivor 1 space)。当伊甸区的空间用完时程序又需要创建对象JVM的垃圾回收器将对伊甸区的垃圾进行回收Minor GC将伊甸区中的不再被其他对象所引用的对象进行销毁。 如果出现了java.lang.OutOfMemoryError:Java heap space异常说明java虚拟机的堆内存不够原因有二 1、java虚拟机的堆内存设置不够可以通过参数-Xms、-Xmx来调整 2、代码中创建了大量大对象并且长时间不能被垃圾回收器收集该对象还被引用着 1.1.1、Minor GC的过程 复制清空》交换 1、eden、from区中的对象复制到to区年龄1 首先当eden区满的时候会触发第一次GC把还活着的对象拷贝到from区当eden区再次满的时候会扫描eden区和from区对这两个区域的对象进行垃圾回收经过这次回收后还存活着的对象则直接复制到to区如果有对象的年龄已经达到了老年的标准则复制到老年代同时把这些对象的年龄1 2、清空eden、from区 然后清空eden区和from区中的的对象原来的from区变to区to区变为新一轮的from区也即复制之后有交换谁空谁是to 3、进入老年代 部分对象会在from区和to区中复制来复制去如此交换15次由JVM的参数MaxTenuringThreshold决定这个参数默认值为15之后如果还活着将进入老年代。 1.2、养老区 存放的是经历过15次完整垃圾回收的对象。 1.3、元空间 实际而言方法区Method Area和堆一样是各个线程共享的内存区域用于存储虚拟机加载的类信息普通常量静态常量编译器编译后的代码等等虽然JVM规范将方法区描述为堆的一个逻辑部分但它却还有一个别名叫做Non-Heap(非堆)目的就是要和堆分开。 对于HotSpot虚拟机很多开发者习惯将方法区称之为“永久代(Parmanent Gen)” 但严格本质上说两者不同或者说使用永久代来实现方法区而已永久代是方法区(相当于是一个接口interface)的一个实现jdk1.7的版本中已经将原本放在永久代的字符串常量池移走。 永久存储区是一个常驻内存区域用于存放JDK自身所携带的 Class,Interface 的元数据也就是说它存储的是运行环境必须的类信息被装载进此区域的数据是不会被垃圾回收器回收掉的关闭 JVM 才会释放此区域所占用的内存。 二、堆内存参数调优
2.1、堆内存参数调优调哪些参数
-Xms堆空间的最小值默认为物理内存的1/64-Xmx堆空间的最大值默认为物理内存的1/4-XX:PrintGCDetails输出详细的GC处理日志 2.2、堆内存的默认物理内存
/*** Author : 一叶浮萍归大海* Date: 2023/11/16 14:50* Description: 获取堆内存的默认物理内存大小*/
public class HeapMainApp {public static void main(String[] args) {// Java虚拟机试图使用的最大内存long maxMemory Runtime.getRuntime().maxMemory();// 当前Java虚拟机中的内存总量long totalMemory Runtime.getRuntime().totalMemory();System.out.println(【-Xmx】最大内存 maxMemory 字节、 (maxMemory / (double) 1024 / 1024) MB);System.out.println(【-Xms】总内存 totalMemory 字节、 (totalMemory / (double) 1024 / 1024) MB);}} 2.3、修改堆内存大小
-Xms1024m -Xmx1024m -XX:PrintGCDetails 三、OOM异常演示
/*** Author : 一叶浮萍归大海* Date: 2023/11/16 15:31* Description: 修改堆内存的最大值和最小值为10m方便观察GC的回收过程* -Xms10m -Xmx10m -XX:PrintGCDetails*/
public class OomMainApp {public static void main(String[] args) {String message 欧耶今天星期五!;while (true) {message message new Random().nextInt(88888888) new Random(99999999);}}} 四、获取本机的cpu核数
/*** Author : 一叶浮萍归大海* Date: 2023/11/16 14:39* Description: 获取本机的电脑核数*/
public class CpuMainApp {public static void main(String[] args) {System.out.println(Runtime.getRuntime().availableProcessors());}}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87139.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!