JVM内存优化怎么做
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容主要讲解"JVM内存优化怎么做",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JVM内存优化怎么做"吧!在Eclipse上安装MAT(MemoryA
千家信息网最后更新 2025年01月23日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) { Listlist = new ArrayList(); int i = 0; while(true) { //public native String intern(); list.add(String.valueOf(i++).intern()); } }}
到此,相信大家对"JVM内存优化怎么做"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
新生
新生代
信息
内存
文件
空间
年轻
内容
大小
实际
年代
插件
程序
线程
问题
永久
分析
学习
生成
更深
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机病毒与网络安全试讲稿
轻量应用服务器怎么关联实例
江苏手机软件开发服务
没有发现服务器联系网络管理员
数据库能放音乐资源吗
网络技术知识学习网站
软件开发进度计划范文
长沙财务软件开发流程
网络安全实习作业
数据库技术的目标
广州银行用的服务器是哪家的
自制库存数据库
快速网络技术培训流程
数据库系统错误1607
石家庄科瑞互联网科技
青岛简易付网络技术
吉林网络技术咨询诚信经营
中国移动网络技术工程面试
徐州数据库防伪技术
百兆独享服务器托管
网络安全工作思考和建议
网易版服务器最新推荐
初中学网络安全工程师
win7更改服务器密码
交通运输行业 网络安全
启动代理服务器
网络安全法过审时间
阿里云主从数据库
瓜帅谈曼城数据库被黑
华为云有自己的服务器吗