рефакторинг устаревшего кода - потенциальные утечки памяти - PullRequest
0 голосов
/ 17 октября 2011

Из-за некоторых утечек памяти часть памяти не освобождается, за исключением случаев выполнения IISreset.

Я обнаружил некоторый код, где у меня есть класс свойств и методов, где только 10% методов являются специфическими длякласс, 90% могут быть перемещены в другой класс.

насколько это плохо?это влияет на мою память, потому что я запускаю этот класс для каждого пользователя, использующего приложение?

Это приложение ASP.NET на IIS6.

1 Ответ

0 голосов
/ 17 октября 2011

Полагаю, если методы не требуют состояния экземпляра, но требуют, чтобы экземпляр вызывал (т.е. они являются методами экземпляра, которые никогда не ссылаются на 'this'), они могут быть преобразованы в статические методы и сэкономить вам одно выделение объекта.Однако, если вам все равно придется выделить объект (как это звучит, как и для других «10% функциональности», о которых вы упомянули), это не похоже на решение проблемы.

Вам следуетвероятно, сделайте анализ использования памяти в вашем приложении с помощью отладчика.Rico Mariani опубликовал довольно хороший пост в блоге о том, как отследить утечки управляемой памяти: http://blogs.msdn.com/b/ricom/archive/2004/12/10/279612.aspx.Это старо, но все еще актуально.(Примечание. Если вы используете .NET 4.0, вам нужно выполнить ".loadby sos clr" вместо ".loadby sos mscorwks", чтобы загрузить расширение отладчика SOS в WinDBG.)

...