内存快照触发dotMemory中的Garbage collection

Memory snapshot triggers Garbage collection in dotMemory

我正在使用 dotMemory 在 IIS 上分析 asp.net mvc 应用程序 运行ning。

而且我怀疑 'get snapshot' 导致 GC gen2 运行。为什么? 这是图片:

问题是:这是正常行为吗?为什么我不能获得显示所有这些未被 GC 收集的快照?每次获取快照时:内存使用率下降。

是的,这是正常行为,因为它会在获取快照之前进行完整的垃圾回收。如果您在获取快照时看到内存使用率下降,这是一个好兆头。

垃圾收集器仅在出现内存压力时才清理内存。如果您想检查内存泄漏,您必须执行完整的垃圾收集并获取快照。如果还有任何问题,那就是内存泄漏。

通常,您应该获得一个干净的基础快照,然后在执行要测试的功能后获得另一个干净的快照,然后比较两个快照。

Microsoft profiling API 以这种方式工作,dotMemory 启动垃圾收集并在 GC 期间收集对象图。