É possível rastrear alocação/desalocação?
-
09-06-2019 - |
Pergunta
Pelo que eu sei, isso não é possível, então estou apenas esperando por uma função de gancho de alocação não documentada no campo esquerdo.
Quero uma maneira de rastrear alocações como em _CrtSetAllocHook, mas pelo C#/.NET
.
A única visibilidade para o coletor/alocação de lixo parece ser GC.CollectionCount.
Alguém tem algum outro feitiço de memória .NET?
Solução
O CLR possui uma 'API de criação de perfil' que se conecta a praticamente tudo - é o que os produtos comerciais de criação de perfil de memória .NET usam, acredito.Aqui está um link do MSDN para o nível superior da documentação: Referência geral do .NET Framework:Sobre a API de criação de perfil
Veja este artigo da revista MSDN para uma introdução ao pedaço de memória: Inspecione e otimize o uso de memória do seu programa com a API .NET Profiler
Outras dicas
Eu usaria apenas o ANTS Profiler do Red Gate.Ele lhe dirá muito sobre o que está acontecendo na memória sem que você precise aprender a API de criação de perfil.