Можно ли отслеживать распределение / освобождение?
-
09-06-2019 - |
Вопрос
Насколько я могу судить, это невозможно, поэтому я действительно просто надеюсь на недокументированную функцию перехвата выделения в левом поле.
Мне нужен способ отслеживать распределения, как в _CrtSetAllocHook Крючок, но для C#/.NET
.
Единственной видимостью для сборщика / распределения мусора, по-видимому, является GC.Количество коллекций.
У кого-нибудь есть какой-нибудь другой моджо .NET memory?
Решение
Среда CLR имеет "API профилирования", который подключается практически ко всему - я полагаю, это то, что используют коммерческие продукты профилирования памяти .NET.Вот ссылка MSDN на верхний уровень документации: Общая ссылка на .NET Framework:О API профилирования
Смотрите эту статью в журнале MSDN magazine для ознакомления с частью памяти: Проверьте и оптимизируйте использование памяти вашей программой с помощью .NET Profiler API
Другие советы
Я бы просто воспользовался ANTS Profiler от Red Gate.Это многое расскажет вам о том, что происходит в памяти, без необходимости самостоятельно изучать API профилирования.