当 LeakCanary 报告应用内存泄漏后显示“0 Distinct Leaks”,可能有以下几种原因:
假阳性:有时候 LeakCanary 可能会错误地报告泄漏。这可能是因为短暂的内存压力导致了 LeakCanary 误以为存在泄漏。
内存泄漏已被回收:在 LeakCanary 捕获泄漏之前,垃圾收集器(GC)可能已经回收了内存。这会导致 LeakCanary 记录下泄漏事件,但实际没有泄漏物。
内存泄漏记录已清除:在应用生命周期中,如果重启或某些操作导致 LeakCanary 的记录被清除,也可能会导致这种情况。
过滤器:LeakCanary 有一些内置过滤器,可能会过滤掉某些特定类型的内存泄漏。如果所有泄漏都被过滤掉了,你可能会看到“0 Distinct Leaks”。