zoukankan      html  css  js  c++  java
  • jvm

    jvm 结构:

      类加载子系统:从文件或者网络中加载class信息(classLoad)

      方法区:将加载的信息存放在方法区中,常量池,类变量

      java堆:虚拟机启动时创建,由jvm控制大小         【Eden,From , To】(young)【old】  【permanent】

      直接内存:运行NIO库下的东西

      垃圾回收系统:对象空间释放是隐式的。

      java栈:每一个java虚拟机线程都有一个私有的java栈

      本地方法栈:java栈用于java方法的调用,而本地方法栈用于本地方法调用

      pc寄存器:私有的,区分线程中执行方法是本地方法还是java方法

      执行引擎:负责执行虚拟机的字节码

    jvm分代:为了提高垃圾回收的效率和内存的分配(如果不分代的话在垃圾回收时,会遍历所有的对象,效率不高)

      新生代:对象存活时间短。 只需要在新生代进行频繁的GC

      老年代:多次回收任然存活。 不需要频繁进行回收

      永久代:静态属性,类信息放在永久代中。 一般不进行回收,HotSpot特有的

    垃圾回收算法:

      引用计数法:对象有一个引用,增加一个计数器,对象引用减少一个,计数器减一,缺点:无法处理循环引用的问题

      复制法:【主要用在survivor区即form和to之间的转换】,缺点:需要2倍的内存空间

      标记-清除法:分两个阶段,第一个阶段从引用根节点开始标记所有被引用的对象,第二阶段,遍历整个堆,把未被标记的对象清除,缺点,需要暂停整个应用,同时会产生内存碎片。

      标记-整理法:分两个阶段,第一个阶段从引用根节点开始标记所有被引用的对象,第二阶段,遍历整个堆,把清除未标记对象并且吧存活对象“压缩”到堆中的其中一块,按顺序排放

              此算法避免了“标记-清除”的碎片问题,同时避免了“复制”算法的空间问题。

    垃圾收集器:是对垃圾回收算法的具体应用。

      次收集器(minor GC 又叫 Scavenge GC),在年轻代空间紧张时触发,总是优先于  --全收集器 (Full GC) System.gc() 触发的就是全收集器

    分代回收器:7种

      young gereration : serial (串行收集器:只用一个cpu收集线程去完成GC工作) , parNew (并行收集器) , parallel  scavenge(并行)

      old  gereation又叫 tenured gereation: CMS(coucurrent Mark Sweep 并发 标记 清除 )  , serial old    ,  parallel old 

      第七个是处于年轻代和老年代之间的  G1(Gabage Frist)

      

      串行收集器 Serial :是HotSpot运行在client模式下默认的新生代收集器,且在进行垃圾回收时需要暂停所有的工作线程 stop the word,可以使用-xx+useSerialGC打开(这是一些指定虚拟机用什么GC),对串行收集器的优化就是减少暂停时间(这是一个矛盾的事情)。如果是新生代用的是复制算法,如果回收的是老年代用的是标记-整理算法

      jvm优化:1.合理的选择收集器

          2.选择jvm的版本(client和server)

          3.堆区大小的分配

      并行收集器 parNew:其实是serial的多线程版本.

      吞吐量=cpu运行用户的应用程序的时间/(cpu处理用户的程序的时间+GC所耗时的时间)

      

     

      获得到的垃圾收集器一定两个,一个是新生代的,一个是老年代的,可以通过eclipse中的运行修改参数。

      

  • 相关阅读:
    UVA 10462 Is There A Second Way Left?(次小生成树&Prim&Kruskal)题解
    POJ 1679 The Unique MST (次小生成树)题解
    POJ 2373 Dividing the Path (单调队列优化DP)题解
    BZOJ 2709 迷宫花园
    BZOJ 1270 雷涛的小猫
    BZOJ 2834 回家的路
    BZOJ 2506 calc
    BZOJ 3124 直径
    BZOJ 4416 阶乘字符串
    BZOJ 3930 选数
  • 原文地址:https://www.cnblogs.com/xp0813/p/11206157.html
Copyright © 2011-2022 走看看