美文网首页
GC回收时常见的异常

GC回收时常见的异常

作者: _Irving | 来源:发表于2023-02-01 15:35 被阅读0次
报错一:
[ParNew (promotion failed): 320138K->320138K(353920K), 0.2365970 
secs]42576.951: [CMS: 1139969K->1120688K(2166784K), 9.2214860 secs] 
1458785K->1120688K(2520704K), 9.4584090 secs]
  • 原因是由于救助空间不够,从而向年老代转移对象,年老代没有足够的空间来容纳这些对象,导致一次full gc的产生

解决办法:
1、增大救助空间
增大救助空间就是调整-XX:SurvivorRatio参数,这个参数是Eden区和Survivor
区的大小比值,默认是 8,也就是说 Eden 区是 Survivor 区的 8 倍大小,要注意
Survivo是有两个区的,因此Surivivor其实占整个young genertation的1/10。
调小这个参数将增大 survivor 区,让对象尽量在 survitor 区呆长一点,减少进
入年老代的对象
2、增大年老代或者去掉救助空间
去掉救助空间的想法是让大部分不能马上回收的数据尽快进入年老代,加快年老
代的回收频率,减少年老代暴涨的可能性,这个是通过将-XX:SurvivorRatio 设
置成比较大的值(比如 65536)来做到

报错二:
 [GC 90010.628: [ParNew: 261760K->261760K(261952K), 
0.0000350secs]90010.628: [CMS (concurrent mode failure)]
  • 原因是新空间分配请求在年老代的剩余空间中无法得到满足。

解 决 办 法 是 需 要 减 少 young 、 增 加 old 的 大 小 , 或 者 使 用
-XX:CMSFullGCsBeforeCompaction 并设置较小的值,提高 full gc 后压缩 old
的频次,避免 young 大对象无法晋升到 old

相关文章

  • Java 常见的垃圾回收器

    Java 常见的垃圾回收器 垃圾回收器 (GC, Garbage Collector)是和具体的 JVM 实现紧密...

  • Dart

    Dart线程模型及异常捕获 Flutter 实战 Dart的内存回收机制 Dart GC

  • ipfs GC 详解

    ipfs gc 简介 GC 是garbage collection的缩写,也就是垃圾回收的意思,ipfs GC 时...

  • android 内存泄漏(多文章摘录)

    内存泄漏 gc没有办法回收activity的内存。 垃圾回收(GC) 垃圾回收或GC(Garbage Collec...

  • js语言性能优化以及相关概念理解

    概要 内存管理 垃圾回收与常见的 GC 算法 V8 引擎的垃圾回收 performance 工具 代码优化示例 内...

  • Java基础 (14) 垃圾回收

    1)GC算法(各种算法的优缺点以及应用场景)2)内存对象的循环引用及避免3)内存回收机制、GC回收策略、GC原理时...

  • 垃圾收集器与内存分配策略

    一、GC收集器 1、GC回收需要思考的三件事: a) 如何判断哪些内存需要回收? b) 用什么回收? c) 什么时...

  • JVM学习笔记

    1. young GC 和 full GC young gc:回收年轻代垃圾,回收频繁,速度较快 full gc:...

  • java内存分区及垃圾回收

    Android垃圾回收:分配内存-GC不回收软引用(GC_FOR_MALLOC)-增长到最大堆-(GC回收软引用(...

  • 常见垃圾回收算法

    什么是垃圾回收(GC) 垃圾回收机制是一种找到内存中的垃圾将其释放并回收空间的机制 常见的垃圾回收算法 引用计数法...

网友评论

      本文标题:GC回收时常见的异常

      本文链接:https://www.haomeiwen.com/subject/uqdihdtx.html