用了0.5M
扫描二维码关注公众号,回复:
6426083 查看本文章
还没进行拓展 GC之后不能够满足就扩容
都放在eden 老年代没有用
s0 s1 太小 放不下1M的对象 放到老年代
对新生代做一定的调整 可以减少GC的发生
S区变小于利用内存的使用率
转存
GC
引用计算法
标记清除法
标记:从根节点标记可达的对象
清除:未被标记的对象
复制算法
对象的复制消耗时间性能
可触及可复活不可触及
GC线程开始清理垃圾时其他的线程要停止,以保证能够清理干净垃圾
原因就是其他线程在执行的时候可能会改变对象的引用状态,比如在进行标记的时候已经被标记为可回收的对象可能被再次引用,就会造成回收了不能被回收的对象而出现问题
新生代的GC停顿很小
老年代GC有时会发送很长时间的停顿(几十秒) 主备机
聚会清洁工清理垃圾,只有停止人们活动才能够停止了垃圾的产生,才能够打扫干净房间
主要是防止线程在CLR检查期间访问了某个对象改变了这个对象的状态。
聪明的你肯定也知道了垃圾回收最开始的阶段 会进行当前 托管堆中所有对象进行遍历,进行标记,有引用的 标记为 1 没有引用的标记为 0,标记为0 的则是GC需要回收的。