zoukankan      html  css  js  c++  java
  • 4、判断对象的存活

    1、概述

    • GC需要完成的3件事情:
      • 哪些内存需要回收?
      • 什么时候回收?
      • 如何回收?
    • 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,需要对这些“自动化”的技术实施必要的监控和调节。
    • 程序计数器、虚拟机栈、本地方法栈不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收啦。

    2、对象已死吗

    引用计数法
    • 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。
    • 主流虚拟机没有选用引用计数算法来管理内存,其中最主要的原因是它很难解决对象之间相互循环引用的问题。
    • 引用计数算法的缺陷:
    // test()方法执行后,objA和objB会不会被GC呢?
    public class ReferenceCountingGC {
        public Object instance = null;
        private static final int _1MB = 1024 * 1024;
        // 这个成员属性的唯一意义就是占点内存,以便能在GC日志中看清楚是否被回收过
        private byte[] bigSize = new byte[2 * _1MB];
    }
    
  • 相关阅读:
    js数组操作
    docker操作命令
    swoole使用案例
    swoole实现视频弹幕效果
    swoole的UDP服务
    swoole的TCP服务
    安装回环网卡&安装Linux前准备
    Linux之安装Linux详细步骤
    Spring Boot的面试题
    Shell 脚本面试问题大全
  • 原文地址:https://www.cnblogs.com/sanjun/p/9833960.html
Copyright © 2011-2022 走看看