• DZ
    2022-02-13
    老师,请教下,Card table维护的是老年代到年轻代的跨代引用,那年轻代到老年代的跨代引用需要维护么?还是直接遍历?

    作者回复: 不需要。是这样的:年轻代gc会独立做,老年代gc发生的时候就全部遍历一下。这是因为年轻代会更频繁。老年代则没有那么频繁。

    
    4
  • 费城的二鹏
    2021-12-15
    思考题 用广度优先搜索,可以减少维护一个内存空间。

    作者回复: 其实深度和广度差不多,因为这次没有额外的空间可以复用了。深度用栈,广度用队列,都少不了的。cms采用了一种结合的做法,我后面会在直播或者其他文章里讲一下。当然不知道也没关系。

    
    
  • 费城的二鹏
    2021-12-15
    老师有时间可以讲一下 ZGC 种染色指针的具体原理以及扫描过程的逻辑吗?

    编辑回复: 小编有时间,你敢不敢听~~哈哈,开个玩笑,关注我们的23讲吧~ZGC马上就来

    共 3 条评论
    
  • 费城的二鹏
    2021-12-15
    老师有时间可以详细讲下 OopMap 吗?他的结构与生成原理。

    作者回复: 这个涉及到编译器和gc之间的相互依赖。我们这个专栏怕是写不了了。以后有机会写编译器优化再说吧。

    共 3 条评论
    
  • CoderJiA
    2022-02-10
    512bytes 映射为一个 byte,那如何记录引用关系呐
    
    1
  • Geek_46db19
    2023-08-15 来自北京
    没能够理解 card table 跨代维护的作用。 card table,记录着 old 到 young 到引用中的 old 对象。主要用在 young gc 中,以减少 young gc 对于 old 对象遍历的次数。 我的理解,card table主要还是用在 young gc,那为什么在 old gc 还会出现,并且作为标记灰对象的载体。还是说有新的一个 card table 来标记灰对象。
    
    
  • fly2best
    2023-02-16 来自浙江
    这是我见过的讲的最清楚的CMS的文章了
    
    
  • Darren
    2022-02-12
    card table 怎么置位后,当年轻代垃圾回收的时候,怎么找到从老年代指向年轻代的饮用呀?
    共 1 条评论
    
  • 喵吉豆豆
    2022-01-29
    怎么都没有人留言了,我也没想到更省空间的方法,还等着看老师的回复呢/(ㄒoㄒ)/~~老师的课程真好,虽然我不做java,是个写C的,但是对我这样时常需要自己造轮子的学到了很多轮子设计图纸,可以自己裁裁剪剪用在自己的项目里,最重要的是那个思路,感谢!
    
    
  • sc
    2021-12-15
    请问老师, 1. Remember Set 与 Card table 的关系,是因为 Remember Set 效率较差,复杂,所以最终在 hotspot 中使用了 Card table 这种方案吗;网上有些博客说 Remember Set 与 Card table 的关系是接口与实现的关系,老师怎么看呢 2. Card table 中维护的是从老年代到年轻代的跨代引用,请问老师,那么当进行年轻代的 Scavenge gc 时,从根对象出发进行深度遍历的时候,如果遇到的对象是老年代的对象,这个遍历就会停止吗,然后从对应的 Card table 中找这些存在的从老年代到年轻代的引用,将这些被跨代引用的年轻代的对象复制过去吗 3. 在 Java 对象的对象头中存在 age,用来判断是否要晋升到老年代;请问老师,一个对象现在处于年轻代还是老年代,是如果判断的呢(网上没有找到答案),是在对象头有其他信息吗,还是直接根据对象所处的内存位置判断呢?
    共 5 条评论
    