jvm总结
文章平均质量分 74
zhang_rk
这个作者很懒,什么都没留下…
展开
-
Jvm调优总结--1:概念
数据类型 基本数据类型: 基本数据类型的变量值保存原始值——它代表的值就是数值本身 包括:byte–short–int–long–char–float–double–Boolean–returnAddress 引用数据类型: 引用数据类型的变量保存引用值——代表对象的引用,不是对象本身,对象本身存放在这个引用值所标示的地址的位置 包括:类类型–接口类型–数组 堆与栈 栈是运行时的单位,堆是...原创 2018-11-21 15:47:57 · 207 阅读 · 0 评论 -
Jvm调优总结--2:基本垃圾回收算法
按照基本回收策略分: 引用计数(Reference Counting): 对象有一个引用,增加一个引用则增加一个计数,删除一个引用则减少一个计数,垃圾回收的时候,只对收集计数为0的对象。(最致命的是无法处理循环引用的问题) 标记-清除(Mark-Sweep): 第一阶段:从引用根节点开始标记是所有被引用的对象。第二阶段:遍历整个堆,把未标记的对象清除。(此算法需要暂停应用,还会产生内存锁...原创 2018-11-21 15:54:14 · 178 阅读 · 0 评论 -
Jvm调优总结--3:垃圾回收面临的问题
如何处理碎片 “复制”和“标记-整理”都可以 如何解决同时存在的对象创建和对象回收问题 进行垃圾回收前,暂停内存的分配,进行垃圾回收,回收完继续应用。这种方式最直接最有效(弊端:堆空间持续增大时,垃圾回收的时间也相应持续增大,对应的暂停时间也相应增大) 为了解决这个问题就有了并发垃圾回收算法,垃圾回收线程与程序运行线程同时运行。(在新生成对象的同时要回收对象,算法复杂性增大,系统的处理...原创 2018-11-21 15:56:06 · 335 阅读 · 0 评论 -
Jvm调优总结--4:分代垃圾回收
为什么要分代 不同生命周期的对象采用不同的收集方式,提高回收效率 如何分代 持久代主要存放java类的类信息,与垃圾收集要收集的java对象关系不大。 年轻代:所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。当eden区满时,还存活的对象被复制到survivor区,当该区满时分配到另一个区,三个区都满的时候复制到年老区。 年老代:在年轻代经历...原创 2018-11-21 16:01:50 · 185 阅读 · 0 评论 -
Jvm调优总结--5:典型配置
堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,...原创 2018-11-21 16:07:08 · 178 阅读 · 0 评论