zoukankan      html  css  js  c++  java
  • JVM内存概览与GC初步

    一、JVM内存空间概览

    Java虚拟机使用的内存块包含 栈空间Stack (虚拟机栈、本地方法栈)、堆空间 Heap Memory 、永久区 Perm Gen(related to method area)(方法区)

    堆空间(Heap Memory)包含 初生代Eden Gen、两个幸存代Survivor Gen (S1 S2)、老年代Old Gen.

    GC优化= 选择合适的GC Collector +调整Heap大小+调整新生代比重+避免Full GC

    Minor GC比Full GC 的发生频率高很多

    二、堆空间Minor GC机制

    新建对象存放在Eden Gen 

    一次Minor GC后Eden区存活的对象放在空闲Survivor区S2(这里假设是S2),S1中存活的对象复制到S2,然后S1被清空

    下一次Minor GC时,Eden 存活对象复制到S1,S2存活对象复制到S1,如此,两个Survivor区反复交替复制。

    在Survivor区经历过16次MinorGC后仍旧存活的对象,复制到Old Gen

    三、Stop-The-World

    执行GC时会停止JVM应用层进程。

    四、GC监控 JConsole 监控虚拟机Heap 堆变化以及老年代变化

    图一 (全局查看)

    图二(查看老年代变化,图中两次内存使用率下降均在Full GC时)

  • 相关阅读:
    云虚拟化
    yum puppet 并整合控制台
    Centos6.4 openNebula
    ubuntu Server LAmp环境
    openSuSE12.1 zypper LAMP
    yum puppet
    NYOJ 257 郁闷的C小加(一)
    JAVA_SE基础——17.方法的重载
    poj 1390 Blocks (经典区间dp 方块消除)
    HBase数据同步到ElasticSearch的方案
  • 原文地址:https://www.cnblogs.com/zhengwenqiang/p/7077262.html
Copyright © 2011-2022 走看看