JVM内存模型
类加载过程
双亲委派机制
分代回收
- 新生代(Eden/s1/s2),老年代,永久代/元空间。
- 晋升机制根据对象存活时间。
垃圾回收器
full gc的时机
性能调优
- 目的:减少gc,stw。
- 方法:设置堆的最大最小值,调整新生代与老年代的比例,配置高可以设置并发收集算法。
oom种类
- 对象太多没有释放。
- 线程创建太多没有释放。
- fd太多,一个进程1024个fd。
逃逸分析
- 依据:对象被赋值给堆中对象的字段或类的静态变量(其他线程访问时编译器无法追踪);位于不确定的代码中(保守处理)。
JVM调优的情况
- 线程死锁
- 锁竞争
- cpu过高
- 内存泄露
JVM指令与工具
- jps:查看java进程概述
- jstat -gcutil [pid] [时间间隔]:根据进程id查看进程的详细情况
- jstack [pid]:查看进程中的线程运行状况
- jmap -dump:file=[文件名] pid:将进程运行的状况dump到文件中,文件通过fastThread线上工具分析。
- jmap -heap [pid]:打印进程的堆内存信息
- jconsole和visual VM工具
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。