1

我正在经历 GC Gen 2 收集以一系列方式发生的情况 - 一个接一个地发生,这使我的应用程序挂起长达 30 秒。这主要发生在执行 GUI 操作时,例如启动动画或导航到另一个站点(卸载和加载新控件)。它随机发生。与此同时,根本没有 Gen 2 系列。在进行导航之前将 LatencyMode 设置为低并在完成后将其设置回来并没有多大帮助。

事实:

  • .net 4.0,WPF
  • Gen 0 堆大小在 3 到 6 MB 之间
  • Gen 1 堆大小在 0 到 3 MB 之间
  • Gen 2 堆大小相当恒定 ~330 MB
  • LOH 堆大小相当恒定 ~70 MB

Gen 2 和 LOH 如此之大,因为我在字典中缓存了许多对象,以便在我的时间关键型应用程序中快速访问它们。

我也有一个很好的 perfmon 屏幕截图,但不允许发布它(所以防止新用户的垃圾邮件):(

有任何想法吗?

性能监视器

4

0 回答 0