当前位置: 首页 > news >正文

JVM 调优篇2 jvm的内存结构以及堆栈参数设置与查看

一 jvm的内存模型

2.1 jvm内存模型概览

二  实操案例

2.1 设置和查看栈大小

1.代码

/*** 演示栈中的异常:StackOverflowError** @author shkstart* @create 2020 下午 9:08** 设置栈的大小: -Xss   (-XX:ThreadStackSize)** -XX:+PrintFlagsFinal*/
public class StackErrorTest {private static int count = 1;public static void main(String[] args) {try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}try {count++;main(args);}catch (Throwable e){System.out.println("递归的次数为:" + count);}}}

2.设置

3.查看: jinfo -flag    ThreadStackSize pid

2.2 查堆的大小

1.代码

package com.ljf.jvm.optimise.staick;/*** 1. 设置堆空间大小的参数* -Xms 用来设置堆空间(年轻代+老年代)的初始内存大小*      -X 是jvm的运行参数*      ms 是memory start* -Xmx 用来设置堆空间(年轻代+老年代)的最大内存大小** 2. 默认堆空间的大小*    初始内存大小:物理电脑内存大小 / 64*             最大内存大小:物理电脑内存大小 / 4* 3. 手动设置:-Xms600m -Xmx600m*     开发中建议将初始堆内存和最大的堆内存设置成相同的值。** 4. -XX:+PrintFlagsFinal** @create 2021  20:15*/
public class HeapSpaceInitial {public static void main(String[] args) {//返回Java虚拟机中的堆内存总量long initialMemory = Runtime.getRuntime().totalMemory() / 1024 / 1024;//返回Java虚拟机试图使用的最大堆内存量long maxMemory = Runtime.getRuntime().maxMemory() / 1024 / 1024;System.out.println("-Xms : " + initialMemory + "M");System.out.println("-Xmx : " + maxMemory + "M");//        System.out.println("系统内存大小为:" + initialMemory * 64.0 / 1024 + "G");
//        System.out.println("系统内存大小为:" + maxMemory * 4.0 / 1024 + "G");try {Thread.sleep(1000000);} catch (InterruptedException e) {e.printStackTrace();}}
}

2.查看

2.2 设置堆大小和日志输出

1.代码

/** 测试:大对象直接进入老年代* -Xms60m -Xmx60m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+PrintGCDetails* @create 2021  21:48*/
public class YoungOldAreaTest {public static void main(String[] args) {byte[] buffer = new byte[1024 * 1024 * 20];//20m}
}

2.进行设置:    -Xms60m -Xmx60m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+PrintGCDetails

3.输出日志


http://www.mrgr.cn/news/22687.html

相关文章:

  • 考拉悠然产品发布会丨以悠然远智全模态AI应用平台探索AI行业应用
  • 0 ~ 100的整数,对n取模,值分别是0, 1, ..., n-1
  • 【网页播放器】播放自己喜欢的音乐
  • SAP ABAP 销售订单冲减独立需求流程
  • 信贷域——信贷业务
  • 关于汽车加油是加200还是加满的思考
  • LDtk to Unity 大致流程和一些注意点
  • 什么开放式耳机最好?长文传授6招秘籍,彻底远离坑货!
  • 快被右下角的windows Defender烦死了,怎么让它消失?
  • Java 入门指南:JVM(Java虚拟机)—— HotSpot 处理 Java 堆中的对象
  • 研发效能-加速
  • 【拥抱AI】浅谈Prompt的书写规范及要点
  • [Linux入门]---进程替换
  • ECMAScript 与 JavaScript 的深入对比与关系探讨
  • 【Linux 从基础到进阶】Puppet配置管理工具使用
  • 【阿里千问最新多模态模型】Qwen2-VL:让世界看得更清晰
  • 客户管理太难了?你可能忽视了这些常见问题
  • 智能空调离线语音控制方案:NRK3502语音识别芯片深度解析与应用
  • misc音频隐写
  • JVM面试真题总结(四)