¿Algun perfil de perfil C decente por ahí?

Necesito un perfilador de C #.

Aunque no soy reacio a pagar por uno, lo ideal es algo gratuito o, al menos, con una versión de prueba, ya que lleva tiempo crear una orden de compra.

¿Alguna recomendación?

Puedes probar lo siguiente:

  • nprof (gratis pero un poco viejo)
  • ProfileSharp (fuente abierta)
  • .Net Memory Profiler (realmente bueno para las pérdidas de memoria, hay una versión de prueba)

Editar: Nprof ha sido reemplazado por SlimTune y funciona con aplicaciones .Net 4.0

Utilicé el generador de perfiles de ants en un gran proyecto de c # hace un año y medio. Realmente funcionó muy bien por lo que cuesta, e incluso superó a algunos de los competidores más caros.

Calcula el costo con casi una línea por resolución de línea.

El generador de perfiles EQATEC es muy bueno y es completamente gratuito. Es fácil de configurar y usar, y no parece agregar demasiada sobrecarga a la aplicación. Empecé a usarlo hoy y ya he encontrado un par de cuellos de botella que de otro modo no hubiera detectado.

dotTrace de JetBrains es ampliamente utilizado.

El impresionante NDepend de Patrick Smacchia es excelente para proporcionar análisis estáticos.

Mantengo una lista completa de perfiladores para .NET en SharpToolbox.com.

Allí encontrará las herramientas sugeridas y más, cada una con una breve descripción de lo que propone.

Es interesante que nadie mencione que hay una en las versiones de gama alta de Visual Studio: siempre he encontrado que es lo suficientemente bueno para los perfiles de ejecución. Para el perfil de memoria utilizo Memory Profiler que ya se ha mencionado, pero no es lo que generalmente describiría como ‘un generador de perfiles’.

¿Qué tipo de perfil intentabas hacer?

Usamos el generador de perfiles de ants donde trabajo. Proporciona información muy detallada de una manera simple.

Usamos .NET Memory Profiler . Es un poco feo pero muy útil para encontrar referencias colgantes.

Inicialmente probé el perfil ANTS de Red Gate, que es muy sexy, pero desde el punto de vista de pérdida de memoria es una mierda por las siguientes razones:

1) Es ridículamente lento. Tardaba media hora en poner la aplicación en un estado para comenzar a grabar (tarda 20 segundos sin puerta roja).

2) Red Gate necesita ejecutar su propia herramienta en su propia herramienta. ¡Estaba usando 900MB de memoria para cuando terminé dos instantáneas! Luego se estrelló 🙁

Sin embargo, el componente de tiempo de Red Gate ANTS fue impresionante. Simplemente no se moleste con el generador de perfiles de memoria, a menos que esté tratando con una aplicación trivial (huella pequeña).

He usado AQtime y nunca me ha defraudado. Estoy seguro de que hay una versión de prueba.

Seré el segundo profiler ANTS de la puerta roja . Lo he usado para rastrear algunos problemas de rendimiento realmente preocupantes y fue muy fácil de usar (curva de aprendizaje baja) y presentaba datos agradables y detallados de una manera que era fácil de entender. El precio vale la pena, pero no es gratis …

El impresionante NDepend de Patrick Smacchia es excelente para proporcionar análisis estáticos.

Recomendaría NDepend para el análisis estático, pero ten en cuenta que probablemente necesites dejar de lado un día o dos para analizar realmente la gran cantidad de información que proporciona, así como averiguar qué significan realmente todas las estadísticas en términos de tu codigo.

El perfilador de EQATEC hizo el trabajo aquí.

La versión actual de SharpDevelop (3.1.1) tiene un buen perfilador integrado. Es bastante rápido y se integra muy bien en el IDE de SharpDevelop y su corredor NUnit. Los resultados se muestran en un estilo de árbol / lista flexible (use LINQ para crear su propia selección). Doublecliking el método mostrado salta directamente en el código fuente.

Actualmente no los utilices, un amigo de los elogios sobre el perfilador de ants. Sé que es un producto de pago no muy seguro de lo caro. Si contratas un MVP, podrías aprovechar eso para obtener una licencia gratis.

He tenido buena suerte con el perfilador de memoria .NET

AQTime (perf y memoria) o ANTS (perfilador de rendimiento v4 o perfilador de memoria v5 beta) aquí.

Encontré .NET Memory Profiler ayer, y debo decir que estoy muy impresionado.
Voy a pedir mi licencia hoy.

Aunque no es muy bueno para perfilar el uso de la memoria, el generador de perfiles incluido en algunas versiones de Visual Studio hace un muy buen trabajo al perfilar la velocidad de ejecución.

¿Cuál es tu objective?

¿Es su objective localizar declaraciones específicas y tener una idea aproximada de lo que están contribuyendo a su tiempo de ejecución total, para que pueda encontrar formas de hacerlo de manera diferente?

Por eso, juro por este método.

SlimTune parece ser muy prometedor. http://code.google.com/p/slimtune/