Pergunta
Estou tentando usar a Microsoft's ClrProfiler Para perfilar meu aplicativo bastante grande e está travando sempre que tenta escrever (ou ler) um arquivo de log. Ironicamente, o bug exato está documentado no Site de 'feedback' da MS como não sendo reproduzível e parece nunca ter sido consertado. Estou recebendo um NullReferenceException
no:
CLRProfiler.ReadNewLog.ReadFile(Int64 startFileOffset, Int64 endFileOffset, ReadLogResult readLogResult)
at CLRProfiler.MainForm.checkProcessTimer_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Alguém tem alguma idéia de como eu poderia obter ajuda ou, idealmente, conseguir a coisa maldita a correr corretamente? Os pedidos lamentares de ajuda no MSDN foram ignorados ... obrigado!
Solução
O Profiler CLR é bastante instável, também experimentei muitos acidentes com ele.
Uma dica que ouvi no PDC é usá -lo apenas como uma ferramenta de instantâneo: não colete as informações de uso do MEM durante a execução do aplicativo, mas pare o aplicativo em um ponto em que você sabe que já tem o problema do MEM, e faça um instantâneo do MEM.
Dessa forma, é muito mais estável, e geralmente do gráfico de referência que você pode descobrir o que causa o vazamento.
Outras dicas
Eu suspeito que seja uma avenida morta. Talvez tente jetbrains Dottrace; você pode obter um grátis Teste de 10 dias Para ver se é adequado.