Если я удаляю элементы из списка - значит ли это, что моя оперативная память также очищается / освобождается через сборщик мусора или как-то еще? - PullRequest
0 голосов
/ 05 февраля 2020

В моей программе я добавляю миллионы записей в список в al oop, так что, поскольку программа продолжает работать, моя RAM, кажется, тоже растет (я подозреваю, потому что новые и новые элементы добавляются в список) - так что если таймер событие тик или просто кнопка pu sh приводит к списку. Очистить (): это немедленно освободит мою RAM? Объем памяти увеличился до 500 Мб +, так что при ограниченном количестве бесплатных экземпляров Amazon это проблема ... спасибо!

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

В списке есть методы Clear () или Remove () для очистки или удаления элементов в списке. Принудительно очистить объекты в списке, которые не используются. Или Может присваивать нулевые значения тем объектам, которые не используются, так что назначенные нулевые объекты могут пометить G C, что он не используется и готов для сбора.

Назначение объекта списка для Null после использования, также поможет G C хорошо с ним справиться. ie: myListVariable = null; Так что память может быть очищена с помощью G C и может быть освобождена от неиспользуемых объектов.

0 голосов
/ 05 февраля 2020

Это действительно не рекомендуется, но вы можете заставить сборщик мусора запускаться после очистки списка?

Я нашел эту ссылку: Как заставить работать сборщик мусора?

Я хотел бы изучить реализацию интерфейса iDisposable в вашем классе. Это сделает его управляемым ресурсом и автоматически очистит системные ресурсы, когда вы закончите работу с данными.

Удачи!

...