Проблема со сборкой мусора (WinUI && NET8.0)C#

Место общения программистов C#
Ответить
Anonymous
 Проблема со сборкой мусора (WinUI && NET8.0)

Сообщение Anonymous »

Сейчас я столкнулся со своей первой проблемой GC. После некоторого времени использования приложения (например, 2 минут, а иногда 20 минут или более) приложение становится очень-очень медленным, а использование оперативной памяти и процессора значительно увеличивается одновременно.
В это время время GC значительно увеличивается, и единственное одно из решений - перезапустить приложение, после долгого времени читать некоторые статьи. Не совсем понятно, почему GC может собирать данные примерно 50 раз в секунду во время навигации по кадру? Размер кучи не запускается, просто я не вызываю вручную GC.Collect.
До проблемы сборщик мусора был жив (согласно кривым), но через некоторое время что-то пошло не так, но почему ? И как это исследовать?
Инструменты диагностики
Событие во время одной навигации внутри фрейма во время проблемы
РЕДАКТИРОВАТЬ
Привет, я пытался использовать профилировщик в VS и dotMemory, может быть, я не вижу очевидной проблемы, но я не понимаю этот пример.
Когда проблема присутствует, если бы я попытался, например, принудительно заставить GC внутри профилировщика памяти, GC потребовалось бы МНОГО времени для выполнения работы (и приложение долгое время работало в фоновом режиме без какого-либо взаимодействия до и после)
A утечка памяти прогрессирует, в моем случае я могу перемещаться только между двумя представлениями, загружать, перезагружать и повторять.
Через мгновение все сразу!
GC просто очень длинный, «простая» память утечка может объяснить такое поведение GC?
GC Time

Подробнее здесь: https://stackoverflow.com/questions/790 ... nui-net8-0
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»