java内存管理的缺点_关于 jvm-自动内存管理 的总结

一、垃圾收集器:

1、jdk各版本对垃圾收集器的增强(优化)

5b116837055d14d7159410a717509b1f.png

d4b109b4aea2e35bedbe1502c3640a76.png

jdk8:Removal of PermGen.

ba56ac64b2d0c5f9d459508a025544e2.png

2ab3d2aa433616627abf6bda5789e41f.png

参考:

2、垃圾收集器调优

二、jvm内存调优:

1、工具:

Memory Analyzer (MAT)- 内存分析(获取并分析堆转储文件,如可用于分析内存泄漏)

(相关知识点:通常在触发heap dump之前会进行一次full gc)

9d4b075061d7eaa75c0e7ae02d035fd3.png

4fb08bbf8a0599bbfd55a38304033f00.png

0ed7fabe9e15c3a2917c7027fd9874a6.png

gcviewer - 统计分析GC日志

可统计出minor gc、full gc次数,gc平均时间、平均每秒回收内存容量等(获取日志参数:-       XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:mygclogfilename.gc)

60584a94d3c05d1ebfff77603b7ee9ff.png

此外,可用VisualVM进行jvm监控

182f615f01b5a6ee2c361093c70ee34c.png

三、GC知识在项目(代码)中的应用:

1、将不变的实例缓存

为了避免频繁的GC,可以将不变(一般使用频繁)的实例缓存了起来,而不是一遍一遍的创建它们。如Integer中将-128~127间对象缓存:

efa6fc51818ae546f26d3987db2afa06.png

四、一些思考:

7df5cc91de89b64c60a7328066b7425a.png

上面的故事告诉我们,真正厉害的人并非在问题发生后能够解决问题的人,而是能够运用所知事前避免问题的发生。我们对jvm知识的学习目的大概也是如此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值