Я изучаю использование GC и памяти в нашем приложении и заметил, что у нас, похоже, остались тысячи выживших. К сожалению, только номер не говорит мне, есть ли у нас проблема. Однако мы видим общие проблемы с производительностью, и у нас есть высокая память и много времени в GC.Как я могу исследовать оставшуюся очередь очереди окончательной доработки
В идеале ничто из того, что у нас нет, должно войти в очередь финализации. Это ошибка, если это так. Есть ли способ или инструмент, который я могу использовать для проверки этого? Одно из предположений, которое я слышал, - это специальная сборка с финализаторами, которые регистрируются каждый раз, когда они выполняются, но это довольно много усилий и будет работать только с объектами, чьи типы у нас есть. Есть ли более простой способ?
И стоит ли расследовать оставшихся в живых до завершения? Если да, то как?
Возможно, это не то, что вы ищете; но когда я писал плагин для CRM для синхронизации с Outlook, он всегда ел много памяти (со временем). В итоге я разложил приложение на два - один для «общения с Outlook», а другой для «UI stuff»; часть «связь с внешним видом» была запущена в отдельном домене приложения - ничто не может выжить. Домен приложения не загружается :) –