Я разрабатываю инструмент C #, чтобы помочь мне в анализе файлов журналов для моей работы, и я использую Winforms для создания интерфейса. Я заметил, что каждый раз, когда я проверяю или отменяю отметку в элементе CheckedListBox
, использование памяти моей программой немного увеличивается (максимум несколько сотен килобайт). Неоднократная проверка и снятие отметок приводит к тому, что программа увеличивает объем используемой памяти с 50 МБ до 150 МБ и продолжает расти.
Я контролировал использование памяти с помощью инструментов профилирования Visual Studio, dotMemory и диспетчера задач. Каждый подтверждает, что память набирает обороты, но я не уверен, почему.
Вот точка памяти:
Я не могунайдите «утечку» в моем коде, поэтому я протестировал проверку / снятие отметки с пустой Winform с рядом идентичных элементов в CheckedListBox
и заметил, что память поднимается аналогично (хотя и в меньшей степени)!
Я, очевидно, новичок, когда дело доходит до C # и управления памятью. Я не уверен, стоит ли беспокоиться об этом, или я нетерпелив в отношении сборщика мусора. Хотя проблема, по-видимому, связана с неуправляемой памятью ...
Полный спагетти источник здесь , если вас это вообще заинтересовало.