微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JVM调优公开课笔记

对象放在堆

虚拟机栈, 运行java 本地方法, 运行本地方法

--------------------------------------------

方法区: class, 常量 , static

-XX:Metaspacesize

-XX:MaxMetaspacesize

----------------------------------------------------  

 

 

 

 

 

 

一个方法一个栈针, 执行完了, 出栈, 线程执行完了 

 

 局部变量, 放在堆, 因为它只能被对象使用

 

直接内存, unsafe,  

 

 

-Xss //栈

 

 

 

 

相互引用的垃圾case:    引用计数法无法回收  => 根可达 (可达性分析)

 

 

 

 

处理OOM: 

 

 

查问题:

 jps查java进程

jinfo查参数

-XX:printGC

 

 

 

 jinfo只能修改manageable的参数

 

 

 

 Top

按大写H, 查看问题进程的线程

jstack排查线程

 

 

nid是问题线程

 

 

 排查出GC疯狂工作, 然后继续排查如何造成的GC工作

 

 

jmap -histo //查看对象占用存储情况

 

 

 

 

 复制算法: 只复制非垃圾对象, 到另一块空间, 因为大部分对象都是瞬间废弃, 复制一次可能只复制2%. 复制之后, 原空间格式化

 

回收老年区用fullGC 不仅回收堆, 

年轻态 GC

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐