1、通过调整堆内存大小,延迟内存溢出时间
设置虚拟机参数(Run configurations时设置: -Xmx20m -Xms5m)
2、命令行工具
2.1 Jps [options] [hostid] (hostid为IP或域名地址)
jps用于查看有权访问的Hotspot虚拟机的进程,当未指定hostid时,默认查看本机的jvm进程。
-q 不输出类名、Jar名和传入main方法的参数
-m 输出传入main方法的参数
-l 输出main类或Jar的权限名
-v 输出传入JVM的参数
2.2 jmap -heap pid(检测堆的配置信息)
用于打印指定Java进程的对象内存映射或堆内存细节。
2.3 jconsole命令打开Java监视和管理控制台
该控制台在连接相应的进程后,便可可视化的查看其相应的内存、线程等。
2.4 jstack
jstack用于生成当前时刻JVM的线程快照,其主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待。
命令:jstack -l PID
内存分析工具:Memory Analyzer Tool。
网友评论