У меня запущен сервис C # .NET. Служба функционирует как TCP-сервер, на который клиенты регистрируются и делают запросы. При просмотре диспетчера задач, кажется, что утечка около 10 МБ / день. Я, кажется, не замечаю их в dev (возможно, из-за гораздо меньшего трафика и активности клиентов). В поисках вокруг я прочитал, что диспетчер задач может быть серьезно ошибочным, но я не уверен, насколько это точно или при каких обстоятельствах TM будет отображать неверную информацию.
Для решения этой проблемы мне нужно более внимательно следить за потреблением памяти. Проблема в том, что утечка появляется только в рабочей среде, где развернутая служба была создана для выпуска. Кроме того, поскольку эта служба не может быть запущена напрямую с VS с подключенным профилировщиком / отладкой, я не уверен, как лучше определить проблему с чем-то более точным, чем TM.
Любая групповая мудрость была бы очень признательна, спасибо.
РЕДАКТИРОВАТЬ:
- Я добавил счетчики perfmon для приватных байтов службы (7 МБ для запуска), а также CLR mem во всех кучах (30 МБ для запуска)
- Диспетчер задач сообщает, что общий объем памяти составляет ~ 37 МБ, поэтому, похоже, это имеет смысл
- Первая часть этого - отпустить службу на один день и снова проверить мои счетчики.
Если мои личные байты становятся большими, но CLR mem примерно статичен, это будет указывать на неуправляемую утечку. Если оба становятся огромными, то это управляемая утечка.
Спасибо, ребята.