`
chaoming.yang
  • 浏览: 62993 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JVM的分代垃圾收集算法及OOM

阅读更多
Java 内存类型分为:
Heap
Permanent
Stack
其中Heap
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
Heap分为:
a.新生代(young generation):新生代又被分为两块: Eden Space和Survivor spaces新建的大部分对象存放在Eden Space
b.旧生代(tenured generation又成old):存放新生代中经过多次垃圾回收仍然存活的对象,新建对象也
有可能存在,像大的数组对象,且成员中无引用外部对象
[Eden  ['i:dn]  n. 伊甸园, 乐园,tenured  ['tenjuə]终身占用 ]

其中的Permanent Generation (non-heap)
保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。JVM共享这些类数据。
这个区域被分割为只读的和只写的,
另外
Code Cache (non-heap)
HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做“代码缓存区”(code cache)分区
OOM内存溢出:
如果JVM里运行的程序, 它的heap space和perm gen都满了,这个时候程序还企图创建新的对象实例的话,jvm gc就会启动,试图释放足够的内存来创建这个对象。这个时候如果gc无法释放出足够的内存,它就会抛出OutOfMemoryError内存溢出错误。
垃圾收集类型:
MinorGC局部垃圾收集(新生代垃圾收集)
FullGC全局垃圾收集 对新生代、旧生代及持久代都进行GC,此时JVM停止对外相应,CPU占用率变高。
FullGC原因:
1、旧生代空间不足触发Full GC
2、CMS GC失败触发的Full GC
3、统计得到的MinorGC晋升到旧生代的平均大小 大于旧生代的剩余空间
CMS:Concurrent Mark-Sweep GC(执行时间和应用并发进行),参数:-XX:+UseConcMarkSweepGC
注:CMS执行过程大部分时候是和应用并发进行,相比并行GC,CMS GC需要执行三次mark,GC总耗时较长,但执行GC的时间被缩短
分享到:
评论

相关推荐

    JVM入门实战/arthas实战/垃圾回收算法/垃圾回收器/jvm内存模型分析

    本系列课程从JVM基础到高级实战,老师手把手教你如何进行JVM调优,思路清晰,没有废话,旨在挑战高薪。 课程亮点: 1、基于阿里arthas进行JVM调优; 2、基于代码排查OOM问题,拒绝空讲; 3、总结JVM通用的调优思路;...

    深入java虚拟机

    1. JVM调优 1.1 JVM调优总结(一)-一些概念 1.2 JVM调优总结(二)-一些概念 1.3 JVM调优总结(三)-基本垃圾回收算法 1.4 JVM调优总结(四)-垃圾...4.2 JVM内存管理:深入垃圾收集器与内存分配策略 4.3 深入理解JVM

    编程文档JVM、Java基础、.rar

    Java引用,GC垃圾收集器,OOM 类加载,类加载器 对象初始化 编译 JiT:即时编译 两大无关性 平台无关性: 每一台平台解释器不同,但是虚拟机相同,跨平台的原因。 一个程序对应一个虚拟机,多个程序对应多个虚拟机...

    深入JVM内核 - 原理、诊断与优化

    介绍常用的JVM诊断和分析工具,并以死锁和OOM为例,展示这些工具的使用。 第八课 分析Java堆 MAT的使用案例 Jvisualvm介绍使用 介绍了Java堆的分析方法,以一个实例为基础,展示对堆的分析过程。 第九课 锁 ...

    leetcode回朔与贪心的题目-interview:面试官的编程

    垃圾收集器与内存分配策略 2.3 类加载机制 2.4 JVM 内存模型 2.5 JVM 性能监控工具与调优 2.5.1 jps 2.5.2 jstat 2.5.3 jinfo 2.5.4 jmap 2.5.5 jhat 2.5.6 jstack 2.5.7 jConsole 3. 多线程 3.1 线程的通信与状态...

    高级java笔试题-Android-Interview:收集知识点自学使用

    OOM、ANR及性能优化 各种机制 一些比较难理解的技术 启动流程 框架模式 开源库源码分析 其他 设计一套图片异步加载缓存方案 Android UI适配 第二部分 Java JavaSE JavaCollection JavaConcurrent JVM 第三部分 数据...

    Java-Interview:此项目为 Java 面试的汇总,多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题

    多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题。 如果对你有帮助请点下 Star,有疑问欢迎提 ,有好的想法请提 。 常用集合 ArrayList/Vector LinkedList HashMap ...

    虚拟机

    实际问题OOM内存不足问题GC问题(阅读GC日志) 配置/优化JVM参数目标内存管理和GC 字节码和类加载器JVM参数配置和优化CS核心基金会硬件网络操作系统DS /算法虚拟机类别物理硬件的系统VM(例如:Virtual Box,VMware...

    java-interview

    多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题。 如果对你有帮助请点下 Star,有疑问欢迎提 ,有好的想法请提 。 常用集合 ArrayList/Vector LinkedList HashMap ...

    Java-Interview:https

    多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题。 如果对你有帮助请点下 Star,有疑问欢迎提 ,有好的想法请提 。 常用集合 HashMap HashSet LinkedHashMap Java 多...

Global site tag (gtag.js) - Google Analytics