Насколько я могу судить, это невозможно, так что я просто надеюсь на недокументированную функцию перехвата левого поля.
Мне нужен способ отслеживания распределения, как в _CrtSetAllocHook, но для C#/.NET.
Единственная видимость для сборщика / распределения мусора - GC.CollectionCount.
У кого-нибудь есть другое моджо памяти .NET?





В CLR есть «API-интерфейс профилирования», который подключается практически ко всему - мне кажется, именно его используют коммерческие продукты для профилирования памяти .NET. Вот ссылка MSDN на верхний уровень документации: Общая справка по .NET Framework: об API профилирования
Ознакомьтесь с этой статьей журнала MSDN для ознакомления с частью памяти: Проверяйте и оптимизируйте использование памяти вашей программой с помощью .NET Profiler API
Я бы просто использовал ANTS Profiler от Red Gate. Он многое расскажет о том, что происходит в памяти, без необходимости самостоятельно изучать API профилирования.