Очистка больших полей из памяти в долгоживущих объектах - PullRequest
1 голос
/ 07 октября 2009

.NET 3.5, у меня есть несколько классов, которые хранят до 1 МБ строк. Несмотря на то, что я нуждаюсь в объекте очень долго, мне не нужно долго хранить строку.

Как я могу действительно удалить строку из памяти, не избавляясь от родительского объекта.

Является ли хорошей практикой использование "myString = null" в этом случае? или обернуть его в закрытый класс или что-то в этом роде?

Ответы [ 3 ]

2 голосов
/ 07 октября 2009

IDisposable не имеет ничего общего с управлением памятью. Присвоение null частной переменной подойдет. И посмотрите, подходит ли вам Flyweight .

0 голосов
/ 07 октября 2009

Возможно, вы ссылаетесь или копируете строку где-то еще в программе (например, в TextBox?), Которая поддерживает ее в памяти.

0 голосов
/ 07 октября 2009

Рассматривали ли вы Слабая ссылка ?

...