43、.NET垃圾回收机制深度解析

.NET垃圾回收机制深度解析

1. 被判定代分析

在某些特定情况下,我们需要深入了解应用程序中垃圾回收(GC)发生的常见原因,以及哪些代被判定回收及其原因。例如,当我们发现频繁发生Full GC时,就需要探究其背后的原因。

目前,PerfView中的GCStats报告是分析代被判定回收情况的最佳工具。即使是记录最简单的仅进行GC收集的会话,它也会提供“Condemned reasons for GCs”表,该表几乎能解释所有相关信息。

以下是对前五次GC情况的分析:
| GC编号 | 初始请求代 | 最终代 | 判定原因 |
| ---- | ---- | ---- | ---- |
| GC #1 | 2(Full GC) | 2(Full GC) | 显式触发(Induced列中的Blocking值) |
| GC #2 | 0 | 2(Full GC) | 代0分配预算超量,且代2(实际是LOH分配预算超量)分配预算也超量 |
| GC #3 | 0 | 0 | 无其他代被判定的原因 |
| GC #4 | 0 | 1 | 代1分配预算超量 |
| GC #5 | 1 | 2(Full GC) | 由于OutOfSpaceSOH原因初始请求代1,后因代2分配预算超量变为Full GC |

仔细分析“Condemned reasons for GCs”表和“GC Events by Time”表,能让我们深入了解应用程序的GC情况。不过,这是一项繁琐的任务。我们可以查看“Condemned reasons for GCs”表,寻找常见模式和频繁出现的原因。但目前还没有工具能对判定原因进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值