JVM内存优化怎么做
发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,本篇内容主要讲解"JVM内存优化怎么做",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JVM内存优化怎么做"吧!在Eclipse上安装MAT(MemoryA
千家信息网最后更新 2024年11月15日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安全错误
数据库的锁怎样保障安全
长沙成启软件开发有限公司
汕头旅游软件开发公司
软路由器刷打印机服务器固件
软件开发使用税率
javal数据库排序语句
济南培训软件开发工程师
数据库中可以存图片吗
护卫神数据库登录失败
戴尔web服务器
江油租房网络安全
c软件开发需要学什么
国家信息与网络安全中心
网络安全实训报告ensp
郑州工业软件开发价钱
东西湖区国际网络安全维护报价表
30岁学什么网络技术好
主从数据库设计
河南安迅网络技术
全国网络安全员竞赛题库doc
服务器运行多个任务的可靠性
青海小程序软件开发
网络安全认证评估
南京专业软件开发行业
全球网络安全大会24号
服务器上插t4n卡有什么用
南京华奔网络技术有限公司
服务器安全证书绑定端口
电脑网络技术岗位工作总结
汇银宝网络技术股份有限公司
选修课数据库