堆参数调优_java培训

发布时间:2020年07月20日作者:atguigu浏览次数:527

1.Java7堆内存分布

java培训

参数-Xms:初始内存大小
参数-Xmx:最大内存大小

2.Java8堆内存分布

java培训

3.堆内存调优

java培训
  • 调优参数

代码:

public static void main(String[] args){

long maxMemory = Runtime.getRuntime().maxMemory() ;//返回 Java 虚拟机试图使用的最大内存量。

long totalMemory = Runtime.getRuntime().totalMemory() ;//返回 Java 虚拟机中的内存总量。

System.out.println(“MAX_MEMORY = ” + maxMemory + “(字节)、” + (maxMemory / (double)1024 / 1024) + “MB”);

System.out.println(“TOTAL_MEMORY = ” + totalMemory + “(字节)、” + (totalMemory / (double)1024 / 1024) + “MB”);

}

  • 调整内存大小

发现默认的情况下分配的内存是总内存的“1 / 4”、而初始化的内存为“1 / 64”

参数调整:-Xms1024m -Xmx1024m -XX:+PrintGCDetails

java培训
  • 运行后结果(Java7)
java培训
  • 内存调小,出现OOM

代码:

String str = “www.atguigu.com” ;

while(true)

{

str += str + new Random().nextInt(88888888) + new Random().nextInt(999999999) ;

}

调整内存大小:-Xms8m -Xmx8m -XX:+PrintGCDetails

运行结果:

java培训

4.内存溢出定位

4.1 内存溢出定位工具——MAT

java培训

4.2 MAT下载

官网访问地址:https://projects.eclipse.org/projects/tools.mat/downloads

java培训
java培训

安装插件

4.2 MAT使用

运行参数-XX:+HeapDumpOnOutOfMemoryError如果出现OOM时导出堆到文件

  • 安装好插件后,调整参数-Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
  • 刷新eclipse目录列表,打开dump文件,查看内存溢出分析报告

Java培训


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市高新区和发智能大厦(西安校区)