我正在使用dotMemory来分析在IIS上运行的asp.net mvc应用程序。我怀疑'获取快照'会导致GC gen2运行。为什么呢? 这是图片: 问题是:这是正常行为吗?为什么我不能得到显示所有未被GC收集的快照?每次我获取快照时,内存使用量都会下降。
是的,这是正常行为,因为在获取快照之前会执行完整的垃圾回收。如果您看到内存使用量在获取快照时下降,那就是一个好兆头。 垃圾收集器只有在存在内存压力时才会清理内存。如果您想检查内存泄漏,必须执行完整的垃圾回收并获取快照。如果仍有残留物,则表示存在内存泄漏。 通常情况下,您应该首先获取一个干净的基础快照,然后在执行要测试的功能后再获取另一个干净的快照,然后比较这两个快照。