.net 有没有办法限制第0、1和2代的垃圾收集,尽管所有堆中的字节都是常量?这是内存泄漏的迹象吗?

.net 有没有办法限制第0、1和2代的垃圾收集,尽管所有堆中的字节都是常量?这是内存泄漏的迹象吗?,.net,memory-leaks,.net,Memory Leaks,我试图在我们的软件中发现内存泄漏,在Windows内置的“性能监视器”报告中,我发现了这一点- Gen 1和Gen 2的垃圾回收率在 过程就是做一些工作 当进程空闲时,Gen 1和Gen 2的垃圾收集保持不变 随着时间的推移,Gen 0的垃圾收集将继续增加,而与进程是否正在执行某些工作无关 所有堆中的字节表明它不会随时间增加 这正常吗 下面是性能报告的屏幕截图 这些图表显示了从跟踪开始的垃圾收集总数,而不是提升的频率。另外,图表以不同的比例显示-查看PerfMon的“比例”列。如果您注意到GC花

我试图在我们的软件中发现内存泄漏,在Windows内置的“性能监视器”报告中,我发现了这一点-

  • Gen 1和Gen 2的垃圾回收率在 过程就是做一些工作
  • 当进程空闲时,Gen 1和Gen 2的垃圾收集保持不变
  • 随着时间的推移,Gen 0的垃圾收集将继续增加,而与进程是否正在执行某些工作无关
  • 所有堆中的字节表明它不会随时间增加
  • 这正常吗

    下面是性能报告的屏幕截图

    这些图表显示了从跟踪开始的垃圾收集总数,而不是提升的频率。另外,图表以不同的比例显示-查看PerfMon的“比例”列。如果您注意到GC花费的时间太长,请使用适当的工具并检查它。例如(在时间轴模式下)将显示应用程序为GC花费的时间

    您也可以为此使用“%Time in GC”性能计数器。 “显示自上次垃圾收集周期以来执行垃圾收集所用的时间百分比。。此计数器通常指示垃圾收集器代表应用程序收集和压缩内存所做的工作。此计数器仅在每次垃圾收集结束时更新。此计数器计数器不是平均值;其值反映了上次观察到的值。”
    msdn.microsoft.com/en-us/library/x2tyfybc(v=vs.110)。aspx

    图表显示了从跟踪开始的垃圾收集总数,而不是提升的频率。另外,图表以不同的比例显示-查看PerfMon的“比例”列。如果您注意到GC花费的时间太长,请使用适当的工具并检查它。例如(在时间线模式下)将显示应用程序为GC花费的时间。为此使用“%time in GC”性能计数器如何?完全了解它显示的数字-是。“显示自上一个垃圾收集周期以来执行垃圾收集所用的时间百分比。此计数器通常表示垃圾收集器代表应用程序收集和压缩内存所做的工作。此计数器仅在每次垃圾收集结束时更新。此计数器不是n平均值;它的值反映了最后观察到的值。”感谢您提供的信息。我已经浏览了这个MSDN页面,但是我只是想确保我在正确的路径上。根据MSDN,计数器在“x”代垃圾收集结束时递增。高代垃圾收集包括所有低代垃圾收集。当发生更高一代的垃圾回收时,此计数器显式递增。你能加上这个作为答案吗?我会接受的。:)我的理解是,这台电脑不是在聚合,而是在从GC到GC的每个时间段显示一个单独的值。也许我错了。