




Я только недавно начал изучать подобные вещи, но обнаружил, что профилировщики памяти могут предоставлять довольно подробную информацию об экземплярах объектов в вашем приложении.
Вот пара, которую стоит попробовать:
Я согласен с тем, что профилировщик памяти - это самый простой способ получить информацию, которую вы ищете. В дополнение к двум ранее упомянутым, я рекомендую JetBrains dotTrace, который является одновременно профилировщиком производительности и профилировщиком памяти.
Если вы хотите сделать это самостоятельно и хотите достаточно глубоко изучить среду CLR, вы можете использовать .NET Profiling API, который представляет собой неуправляемый API, который (как говорит Microsoft): «позволяет профилировщику отслеживать выполнение программы с помощью общеязыковая среда выполнения (CLR) ". Он не совсем предназначен для повседневного использования, но обладает огромным набором функций.
просто ссылку на соответствующий вопрос SO: