首页技术文章正文

如何解决与GC相关的问题?

更新时间:2021-08-04 来源:黑马程序员 浏览量:

IT培训班

 

一般来讲,具体问题具体分析,见招拆招,遇河架桥。要相信问题总没办法多。

新生代提升过快问题:

(1)如果频率太快的话,说明空间不足,首先可以尝试调大新生代空间和晋升阈值。

(2)如果内存有限,可以

设置 CMS 垃圾收集在老年代占比达到多少时启动来减少问题发生频率(越早启动问题发生频率越低,但是会降低

吞吐量,具体得多调整几次找到平衡点),参数如下:如果没有第二个参数,会随着 JVM 动态调节 CMS 启动时间

-XX:CMSInitiatingOccupancyFraction=68 (默认是 68)

-XX:+UseCMSInitiatingOccupancyOnly

1628060357854_GC.jpg

老年代碎片严重问题:

(1)如果频率太快或者 Full GC 后空间释放不多的话,说明空间不足,首先可以尝试调大

老年代空间。

(2)如果内存不足,可以设置进行 n 次 CMS 后进行一次压缩式 Full GC,参数如下:

-XX:+UseCMSCompactAtFullCollection:允许在 Full GC 时,启用压缩式 GC

-XX:CMSFullGCBeforeCompaction=n 在进行 n 次,CMS 后,进行一次压缩的 Full GC,用以减少 CMS 产生的碎片。






猜你喜欢:

什么是IO流?怎样区分不同种类的IO流?

缓存和web缓存分别是什么?

Nginx的location配置详细教程

黑马程序员java开发培训

分享到:
在线咨询 我要报名
和我们在线交谈!