Как найти утечку в пользовательских объектах

Наше приложение.Net 4.0 имеет утечку, которая вызывает его сбой после длительного использования. После расследования я установил, что "объекты пользователя" протекают. Пользовательский объект - это ресурс Windows, как описано здесь:

http://msdn.microsoft.com/en-us/library/ms725486%28v=VS.85%29.aspx

Windows выделяет 10000 пользовательских объектов на процесс. Другие ресурсы Windows, такие как объекты GDI и дескрипторы, являются постоянными во время работы приложения.

Я нашел аналогичный вопрос для C++, где решение требовало загрузки пакета под названием "обходной путь" из поиска Microsoft - подвох? $10K.

Использование профиля памяти Ant, я подозреваю, это связано с меню. Мы используем меню от SyncFusion, поэтому жизненный цикл вещей, связанных с меню, не может быть найден при просмотре кода. Так что это может быть ошибка, которую SynFusion должен решить.

Кто-нибудь имеет подобную утечку, используя меню SyncFusion? Ants говорит мне, что некоторые объекты PopupMenu находятся вокруг, но Ants не дает информацию о том, как найти, где объекты созданы (и, таким образом, определить, где их утилизировать).

Упомянутое в приведенном выше сообщении SO сообщение об утечке / обходе выглядит интересным, поскольку казалось, что оно перехватывает конкретные вызовы выделения объекта USER.

Предложения приветствуются

1 ответ

Если вы знаете, что меню висят вокруг, вы должны иметь возможность перечислять объекты GDI для вашего процесса и обрабатывать их с помощью DeleteMenu().

окна должны уведомлять ваше родительское окно, когда всплывающие меню отображаются и закрываются, так что это было бы идеальным местом для того, чтобы сделать снимки дескрипторов меню GDI и удалить более новые.

его довольно грубая сила и не рекомендуется для.net, где выполнение такого рода низкоуровневой манипуляции с GDI, возможно, капризно

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

Другие вопросы по тегам