.net visualization profiling call-graph

¿Cómo puedo ver una visualización de un gráfico de llamadas dinámico para un programa.NET?



visualization profiling (4)

Tal vez este proyecto de código abierto en CodePlex podría ayudar como punto de partida:

SequenceViz

http://www.codeplex.com/sequenceviz

"SequenceViz es una herramienta para generar diagramas de secuencia mediante ensamblados .NET de ingeniería inversa. Aunque hace un poco más que eso en las versiones posteriores".

Hay una versión independiente y una implementación como reflector-plugin.

texto alternativo http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=sequenceviz&DownloadId=44432

¿Existe alguna herramienta para visualizar gráficos dinámicos de llamadas? Vi una referencia a uno para Visual Basic 6 pero me gustaría uno para .NET.

Si tuviera que crear un visualizador, ¿debería molestarme con la API de perfiles .NET o debería hacer algo con Mono.Cecil ? Comencé a escribir un tiempo de ejecución de CLI con Cecil, pero supongo que sería más fácil si solo insertara llamadas de grabación de llamadas en los ensamblajes, aunque no conozco la ruta de ejecución con anticipación y tendría que instrumentar todo.


Me encanta el CLR Profiler. No desperdiciaré espacio reproduciendo la documentación aquí, pero parece que es exactamente lo que estás buscando.


Puede usar NProf , un proyecto de código abierto en Sourceforge. Le permite ampliar la GUI predeterminada con nuevas herramientas de visualización .

"nprof está diseñado no solo como un generador de perfiles completamente desarrollado para aplicaciones .NET, sino también como una API completa que se puede usar para construir otros front-ends de perfiles, y para extender la GUI predeterminada con nuevas herramientas de visualización".


Profiling CLR es el propósito de .NET Profiling API, por lo que parece ser perfecto para su necesidad. La mayoría de los productos de Profiler se basan en eso. Pero tendrás que escribir un código no administrado, urk.

También es posible usar Cecil, y es bastante sencillo si solo quieres registrar la entrada / salida de métodos.

EDITAR:

Bueno, PostSharp es probablemente la mejor solución, ya que le permite manejar dicho requisito al confiar en el tejido estático. AOP proporciona un mejor nivel de abstracción que reescribir directamente IL con Cecil.