
jvm
文章平均质量分 82
魔笛Love
这个作者很懒,什么都没留下…
展开
-
mat使用
mat内存分析进行一个最简单的实践mat进行内存分析,编写以下代码,改代码将会造成内存溢出public class Main_work_2_2 { public static void main(String[] args) { System.out.println("start out of memory"); List<Thread> threads = new ArrayList<>(); for (int i =原创 2021-01-14 11:01:56 · 196 阅读 · 0 评论 -
jmap使用
使用jmap命令观察JAVA堆情况jmap(Memory Map for Java)命令用于生成堆转储快照。 如果不使用 jmap 命令,要想获取 Java 堆转储,使用 “-XX:+HeapDumpOnOutOfMemoryError” 参数,可以让虚拟机在 OOM 异常出现之后自动生成 dump 文件;Linux 命令下可以通过 kill -3 发送进程退出信号也能拿到 dump 文件。jmap 的作用并不仅仅是为了获取 dump 文件,它还可以查询 finalizer 执行队列、Java 堆和永久原创 2021-01-14 11:00:27 · 1177 阅读 · 0 评论 -
jstack使用
使用jstack观察虚拟机栈情况jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照,查看Java线程的调用堆栈的,可以用来分析线程问题(如死锁)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合.生成线程快照的目的主要是定位线程长时间出现停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的原因。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者在等待些什么原创 2021-01-14 10:59:16 · 489 阅读 · 0 评论