Отслеживание исключений OutOfMemory в коде C # - PullRequest
1 голос
/ 12 ноября 2008

Мне интересно, есть ли инструмент, позволяющий отслеживать прерывистые исключения OutOfMemoryException в коде C #.

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

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

Ответы [ 3 ]

2 голосов
/ 12 ноября 2008

Взгляните на JetBrains dotTrace Profiler .

0 голосов
/ 17 ноября 2008

Я бы сказал, что WinDbg + SOS - хорошая комбинация для этого, но я скажу вам, что это не самый привлекательный пользовательский опыт.

Мое предложение заключается в том, что вы настроили отладчик точно в срок, чтобы создать аварийный дамп, а затем использовали WinDbg, чтобы найти ошибку.

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

0 голосов
/ 12 ноября 2008

Вы хотите отследить это исключение или определить причину? Я использую AQTime для выявления утечек памяти в управляемом / неуправляемом коде с достаточным успехом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...