JVM内存优化怎么做
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"JVM内存优化怎么做",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JVM内存优化怎么做"吧!在Eclipse上安装MAT(MemoryA
千家信息网最后更新 2026年11月01日JVM内存优化怎么做
本篇内容主要讲解"JVM内存优化怎么做",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JVM内存优化怎么做"吧!
在Eclipse上安装MAT(MemoryAnalyzer Tool)插件,官网链接(https://wiki.eclipse.org/MemoryAnalyzer)
步骤如下:
点击Help,Install New Soft,就出现了以下Install界面:然后我们点击ADD,在弹出的框中填上Mat插件的地址:http://download.eclipse.org/mat/1.8/update-site/,确定后,
点击Select All,点击Next,之后就一直确定,就能安装了。安装之后需要重启Eclipse.
分析命令
// -Xms8m -Xmx8m -XX:+PrintGCDetails// 打印垃圾回收信息 //-Xms8m -Xmx32m -XX:+HeapDumpOnOutOfMemoryError//生成内存快照文件 查看错误信息
package com.shi.jvm;import java.util.ArrayList;import java.util.List;/** * Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main" * @author shiye * GC跟踪: -verbose:gc -XX:+PrintGCDetails 打印GC详细信息 -XX:+PrintGCTimeStamps 打印CG发生的时间戳 -Xloggc:log/gc.log 指定GC log的位置,以文件输出 帮助开发人员分析问题堆: -XX:+PrintHeapAtGC 每次一次GC后,都打印堆信息 -XX:+TraceClassLoading 监控类的加载 -XX:+PrintClassHistogram 按下Ctrl+Break后,打印类的信息: -Xmx -Xms 指定最大堆和最小堆 -Xmx20m -Xms5m -Xmn 设置新生代大小 -XX:NewRatio 新生代(eden+2*s)和老年代(不包含永久区)的比值 新生代:老年代=1:4,即年轻代占堆的1/5 -XX:SurvivorRatio 设置两个Survivor区和eden的比 Survivor :eden=2:8,即一个Survivor占年轻代的1/10 -Xmx20m -Xms20m -Xmn1m -XX:+PrintGCDetails 结果: Exception in thread "main" [Full GC (Ergonomics) java.lang.OutOfMemoryError: GC overhead limit exceeded [PSYoungGen: 512K->0K(1024K)] [ParOldGen: 18595K->517K(18944K)] 19107K->517K(19968K), [Metaspace: 2625K->2625K(1056768K)], 0.0077164 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] at java.lang.Integer.toString(Unknown Source) at java.lang.String.valueOf(Unknown Source) at com.shi.jvm.OOMTest.main(OOMTest.java:58) -XX:+HeapDumpOnOutOfMemoryError OOM时导出堆到文件 -XX:+HeapDumpPath 导出OOM的路径 -Xmx20m -Xms5m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/a.dump XX:OnOutOfMemoryError 在OOM时,执行一个脚本 "-XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p" 当程序OOM时,在D:/a.txt中将会生成线程的dump 可以在OOM时,发送邮件,甚至是重启程序 总结:根据实际事情调整新生代和幸存代的大小 官方推荐新生代占堆的3/8 幸存代占新生代的1/10 在OOM时,记得Dump出堆,确保可以排查现场问题栈: -XX:PermSize -XX:MaxPermSize 设置永久区的初始空间和最大空间 他们表示,一个系统可以容纳多少个类型 -Xss 通常只有几百K 决定了函数调用的深度 每个线程都有独立的栈空间 局部变量、参数 分配在栈上 * */public class OOMTest { public static void main(String[] args) { List list = new ArrayList(); int i = 0; while(true) { //public native String intern(); list.add(String.valueOf(i++).intern()); } }} 
到此,相信大家对"JVM内存优化怎么做"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
新生
新生代
信息
内存
文件
空间
年轻
内容
大小
实际
年代
插件
程序
线程
问题
永久
分析
学习
生成
更深
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会主任
疫情对互联网科技公司影响
互联网金融 金融科技
期待互联网科技
苏州互联网科技贷款公司
碳银互联网科技有限公司
科技类的互联网平台
互联网和黑科技的看法
呼和浩特新华互联网科技学院
开一家科技互联网公司需要多少钱
浙南科技城互联网大厦建设工程
迪庆互联网科技招生
广州新华互联网科技学校电竞方面
特约风豹互联网科技为什么扣费
上海互联网科技公司ppt
容联科技互联网电商
互联网界的黑科技
众联互联网络科技
互联网高科技绘画
六子台科技互联网展会
耶加雪菲
科技互联网技术
广州宏创互联网科技
广州凡科互联网科技
广州紫鲸互联网科技
上海电发互联网科技有限公司
互联网科技革命什么开始
群盈汇互联网科技有限公司
互联网科技创业计划的风险分析
互联网科技创业有什么好项目