• 李二木
    2021-12-10
    可以作为根引用的有: 1) 虚拟机栈中引用的对象 2)方法区中类静态属引用的对象 3) 方法区中常量引用的对象 4)本地方法栈中JNI引用的对象

    作者回复: 写得很好。还可以使用MAT这样的内存分析工具去查看是否还有其他类型。

    共 2 条评论
    3
  • 送过快递的码农
    2021-12-10
    gc的不太清楚,但是我知道一个框架,netty,里面的bytebuf就是用的引用计数法。因为也是避免频繁的创建和销毁对象,再加上还牵扯到堆外内存。所以netty用了buffer池,用的就是引用计数法,一旦计数为0,池就会回收,把它分配给其他的channel

    作者回复: Very good~

    
    3
  • Darren
    2022-02-25
    write barrier有点类似Java中的切面啊,在正常的业务中,插入通用的业务

    作者回复: 可以这么类比,只是这是编译器自动加的。

    
    1
  • 费城的二鹏
    2021-12-10
    思考题 类的静态变量引用,threadlocal引用

    作者回复: 你说的是。还有其他的,可以使用MAT这样的内存分析工具查看一下。

    
    
  • 大鑫仔Yeah
    2021-12-13
    这里想给引用计数管理正个名。 如swift 引用计数的读写一般用cas 性能比较高,和可达性分析的算法相比较,对引用计数的性能损耗时间均摊到每次赋值时吞吐率是大于可达性分析的。 另外swift这类语言都提供了原生weak 引用 99.9%的时间是不需要手动清空的。
    共 1 条评论
    1
  • H X
    2023-03-11 来自上海
    海纳老师,总结上的倒数第二段objB的引用计数是变为0吧?我听音频里说的是0,但是看文稿上面写的是1诶
    
    
  • 炮灰
    2022-04-15
    为什么引用计数法不需要关心内存分配的效率和内存碎片问题
    共 1 条评论
    