Рост счетчика производительности Virtual bytes

У меня возникло исключение «Недостаточно памяти» в моей службе Windows после нескольких часов работы с огромной рабочей нагрузкой. Для обнаружения утечек памяти я использовал следующие счетчики производительности:

  • байты во всей куче

  • Частные байты
  • Виртуальные байты

Первые 2 фишки регулярно поднимаются и опускаются ... Я не вижу в них ничего плохого. но третий очень медленно растет по времени, счетчик тоже идет вверх и вниз, но в конце он увеличивается со временем. Что это обозначает?

My Win Service - это .NET, который вызывает некоторые функции из библиотеки DLL C ++, а также использует стороннюю программу, в которой есть неуправляемый код.

Указывает ли это на утечку памяти в управляемом / неуправляемом коде? или это просто не поможет?

Спасибо


person Tea Bee    schedule 02.02.2010    source источник
comment
Недостаточно информации, чтобы ответить на вопрос. Вы выделяете память в своем коде C #? Вы можете разместить код?   -  person Sam Post    schedule 02.02.2010
comment
Библиотеки DLL C ++ - это не мой код, все они являются сторонними организациями, я выделяю и освобождаю много ресурсов в моем управляемом коде, я не могу опубликовать их все, их слишком много, некоторые из них связаны с GDI +, ADO.NET и многие другие объекты. Я также считаю, что неуправляемый код делает это часто (из-за своей функциональности)   -  person Tea Bee    schedule 02.02.2010


Ответы (1)


Взгляните на clr profiler, чтобы вы могли отслеживать свое использование. Если он дает сбой только под нагрузкой Hudge, это может быть не столько ошибка, сколько новое конструктивное ограничение для обработки нагрузки.

person rerun    schedule 02.02.2010
comment
хммм, я не знаю, почему этому профилировщику не понравилась моя служба Win, он всегда показывает диалоговое окно: ожидая запуска службы общеязыковой среды выполнения, профиль может запустить службу, но затем он показывает это диалоговое окно коробка. - person Tea Bee; 03.02.2010