蔡香满屋
站在牛顿头上吃苹果

随笔分类 -  JVM调优

为何Runtime.getRuntime().maxMemory()比设置的-Xmx最大堆内存还小
摘要:首先源码如下: public class JavaTest { public static void main(String[] args) { System.out.println("-Xmx"+ Runtime.getRuntime().maxMemory()/1024/1024+"M"); } 阅读全文
posted @ 2022-03-11 10:42 蔡香满屋
对象内存的分配与回收
摘要:对象内存的分配与回收1、分配1.1、大部分对象在分配时都是在Eden中1.2、较大的对象直接分配到Old Generation中2、回收(GC)2.1、新生代GC(Minor GC):发生在新生代的垃圾回收动作,因为大多数对象都是朝生暮死的,所以Minor GC非常频繁,回收速度也比较快。2.2、老 阅读全文
posted @ 2020-05-17 23:24 蔡香满屋
JVM调优之对象如何进入老年代
摘要:一般对象首次创建会被放置在新生代的eden区也就是伊甸园区,如果没有GC介入,则对象不会离开eden区,那么eden去的对象如何进入老年代的呢?正常来说,只有对象达到一定的大小,就会自动离开新生代进入老年代区,对象年龄是由对象经历数次GC决定的,在新生代每次GC之后如果对象没有被回收则年龄加1,虚拟 阅读全文
posted @ 2019-07-15 22:00 蔡香满屋
垃圾收集算法汇总
摘要:1.引用计数法:这是个比较古老而经典的垃圾收集算法,其核心就是在对象被其他所引用时计数器加1,而当引用失效时则减1,不过这种方式有非常严重的问题,就是无法处理循环引用的情况,还有就是每次进行加减操作比较浪费系统性能。 借用网上别人画的图: 由于这种算法存在上述缺陷,所以JVM其实并不使用它,而是使用 阅读全文
posted @ 2019-07-13 17:33 蔡香满屋