JVM 工作机制和分析工具

来源:互联网 发布:电脑截屏软件 编辑:程序博客网 时间:2024/06/06 12:55

JVM 虚拟机工作机制
Java垃圾回收机制GC用于清理长时间未被引用的对象 释放内存
Java划分对象的生命周期分为老年代 新生代 永生代
老年代回收的率低,生命周期长 
新生代回收频率高 ,生命周期短
小GC  eden原生代 满的时候回收年轻代,回收不了的年轻代放入老年代 时间短暂 JVM无法为新-对象分配内存空间时 发生小GC
大GC  eden生声代满的时候回收老年代,回收不了的老年代放入永生代
大GC发生时候也会发生小GC




JVM分析工具:

jps:


Java三剑客 jstack、jstat、 jmap   查看进程、线程、 内存 、堆 、GC、请求处理过程

1、jstackjstack用于打印出给定的java进程IDcore file或远程调试服务的Java堆栈信息.java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stacknative stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
命令格式jstack [ option ] pid
option:
jstack-l 锁信息 死锁时使用
jstack -m 堆栈信息
jstack -f强制输出
jstack -F 输出线程信息

二、jstat:Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计
命令格式:jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
option:
jstat -gc 查看gc
jstat -class 查看加载的类   jstat -class 2373 1000 1000每秒一次 显示1000次
jstat -compiler:JIT 编译统计
jstat -printcompilation JVM编译方法统计
jstat pid  查看有问题java进程的详细信息(找当前正在运行的进程状态)
例:

三、jmap:  从服务器打印资源使用情况 比较占资源,服务器运行时候不要使用
命令格式:jmap [option] <pid>
option:
jmap -heap 查看堆信息
jmap -histo:alive <pid> 查看活着的对象信息
jmap -dump:format=b,file=dumpFileName保存堆内存数据至文件中,而后使用jvisualvm或jhat进行查看使用jhat时会监听7000 端口 可以浏览器查看




原创粉丝点击