jps+top+jstat+jmap+mat
1.top 拿进程号 和 分析java进程中哪个线程占用高
2.jstat 查看gc情况,是否有FGC
3.jmap 导出当前快照,看是否有无法回收的对象
4.mat分析哪个对象无法回收
.net core game
致力于.net core全栈游戏服务器开发
展开
-
【jvm堆分析】1.使用jmap导出堆快照 2.Eclipse Memory Analyzer(MAT)分析大对象(注意不一定是数量多) 3.JProfiler进行分析出内存溢出的类名
之前一直使用的JProfiler,本次测试,产生的prof文件过大,原创 2024-05-09 11:31:41 · 487 阅读 · 0 评论 -
jvm常用命令 1.jps,ps -ef | grep java,top 2.kill -9 pid 3.jstat(查gc次数) 4.jmap(导出堆快照)
导出内存 hprof映像,结合MAT工具分析内存泄露。结合pid,查看运行时的参数信息。分析线程信息,死循环,死锁。原创 2023-05-09 15:05:04 · 509 阅读 · 1 评论 -
【jvm如何在设计层面实现线程实现停顿时间控制的思考】
Region: 其实就是将要垃圾回收的区域以“块”的方式进行管理,这样子就可以非常精确的实现到底一次扫描多少,一次回收多少这种较为精确的控制。因此,jvm调优本来就是为了实现:停顿时间 和 gc频率的控制,后续的垃圾回收算法如:zgc,都是以:块为单位,来做优化。不然,你想想,各种cms之类的垃圾回收器,压根没办法控制到底怎样回收,扫到多少,咋回收,其实不好控制。原创 2022-12-02 15:49:23 · 119 阅读 · 0 评论 -
jvm 垃圾回收算法理解
优点:基于5%-%10的对象是垃圾,对象朝生夕死。优点:内存碎片问题得到改善。缺点:略微浪费一点内存。原创 2022-09-27 22:25:51 · 107 阅读 · 0 评论 -
java jvm调优的本质、目的、标准
让一次gc在100ms以内。1)目的:防止OOM>FGC>YGC。原创 2022-09-24 23:06:26 · 431 阅读 · 0 评论 -
【YoungGC】朝生夕死
大部分java对象是在new出来后,用一下就不用了,也就是大部分对象是朝生夕死的,比如:收到消息时,自己包装的各种xxxContext原创 2022-03-28 10:10:12 · 314 阅读 · 0 评论 -
1.jvm启动参数 -Xms1g 启动时分配的内存 -Xmx2g 运行过程中分配的最大内存 2.JProfiler
java -Xms1g -Xmx2g -jar abc.jar-Xms1g 启动时分配的内存-Xmx2g 运行过程中分配的最大内存,如果超过了,则报:oom原创 2021-08-03 14:27:21 · 2630 阅读 · 0 评论 -
查看类的字节码指令 先javac xxx.java 再javap -verbose xxx.class
1)编译一个java类$javacDbService.java2)查看类的字节码javap-verboseDbService.class原创 2020-10-08 10:38:13 · 190 阅读 · 1 评论 -
1.jps 和 jstack定位死锁 2.明明安装的jdk是64位,却提示32位的错误 3.查询指定线程堆栈信息 4.top和jps都可以拿到进程号
1)jps获取进程号 然后用jstack查看线程信息2)根据进程号输出信息jstack不能使用的问题,改为11后即可用了使用,可以看到有死锁原创 2021-02-04 00:12:48 · 233 阅读 · 0 评论