2008-08-14 10 views
78

Necesito un perfilador C#.¿Hay algún perfilador decente de C#?

Aunque no soy reacio a pagar por una, algo que es gratis o al menos con una versión de prueba sería ideal, ya que lleva tiempo generar una orden de compra.

¿Alguna recomendación?

+5

posible duplicado de [¿Qué son algunos buenos perfiladores .NET?] (Http: // stackoverflow.com/questions/3927/what-are-some-good-net-profilers) –

+0

Dice mucho sobre SO que una razón para censurar una pregunta es que es "probable que solicite debate". –

Respuesta

31

Puede intentar lo siguiente:


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

+7

He jugado con ProfileSharp. Es absolutamente horrible –

+1

nprof es .Net 1.1 solo, creo. Si puede compilar en .Net 1.1, puede ser útil perfilarlo y luego recompilarlo a .Net 2 para su lanzamiento. Sin embargo, esto no es posible si comienza a usar las características de .NET2, como los genéricos y los tipos que aceptan nulos. – redcalx

+1

De acuerdo con Matthew, ProfileSharp es terrible, no se pudo obtener para perfilar incluso el comando más simple de la línea de comandos. No pierdas tu tiempo –

1

Actualmente no los use, un amigo mío delira sobre el perfilador de hormigas. 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.

+0

¿Puedes proporcionar un poco más de detalle sobre todo el asunto de MVP? gracias, –

+0

MVP's obtiene la licencia para redirigir productos de forma gratuita, es un agujero en el bucle que lo atrapa, si tiene personas en su equipo que son MVP que hacen que el costo no sea un problema. – DevelopingChris

+0

¿Tiene un enlace que describa esta laguna y cómo capitalizarlo? –

4

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

+0

AQTime tiene una gran ventaja sobre las ANT ya que admite código no administrado. –

40

Usé Ants profiler 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.

+1

Me gustan las HORMIGAS también. Es de Redgate. – Marcel

29

dotTrace de JetBrains es ampliamente utilizado.

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

+1

dotTrace es realmente un excelente generador de perfiles, extremadamente fácil de usar. –

+0

dotTrace 3.1 no funciona con .NET 4. Tenemos que esperar a dotTrace 4.0. –

+1

Como una actualización, tanto dotTrace 4 Performance como dotTrace 3.5 Memory son compatibles con .NET 4. – gorohoroh

7

Utilizamos Ants profiler donde trabajo. Proporciona información muy detallada de una manera simple. impresionante NDepend de

2

Patrick Smacchia es para un excelente análisis estático.

Sin duda, recomiendo NDepend para el análisis estático, pero sólo se advirtió que es probable que tengas que dejar de lado uno o dos días para analizar realmente el camión de la información que proporciona, así como el trabajo de lo que todo el las estadísticas realmente significan en términos de su código.

7

Es interesante que nadie mencione que hay una en las versiones de gama alta de Visual Studio: siempre he considerado que es lo suficientemente bueno para la creación de 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 intentaste hacer?

3

Voy a la segunda red gate's ANTS profiler. 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 ...

6

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

originalmente intentó Red Gate's ANTS profiler que es muy atractivo, pero desde un punto de vista pérdida de memoria es una mierda por las siguientes razones:

1) Su 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! A continuación, se estrelló :(

Sin embargo, el componente de sincronización de Red Puerta HORMIGAS fue impresionante. Eso sí, no se moleste con el perfilador de memoria, a no ser que se trata de una aplicación trivial (de pequeño tamaño).

+2

¿Has probado el v4 de ambos? Ahora es mucho mejor en todos los sentidos :) – thecoop

1

he tenido buena suerte con el perfilador de memoria .NET

0

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

+0

Una forma de acceder al perfilador VS2010 es, después de cargar una solución, desde el menú "Depuración", encontrar "Iniciar análisis de rendimiento". Los detalles de sus capacidades están en http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(VS.PERFORMANCE.WIZARD.METHODPAGE)&rd=true – ShawnFeatherly

1

AQTime (ambos Potencia y la memoria) o ANTS (perfil de rendimiento v4 o perfil de memoria v5 beta) aquí.

32

El EQATEC profiler 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.

+0

No es gratis para una licencia comercial (pero aún es barato, $ 200). – mhenry1384

+0

Sí, parece que cambiaron la licencia de la última versión y comenzaron a cargarse para uso comercial. Aun así, lo recomendaría encarecidamente. – HullCitySteve

+3

Actualización: parece que han cambiado los términos de la licencia nuevamente para que sea gratuita para uso comercial para aplicaciones .NET estándar (pero no para CF o Silverlight) – HullCitySteve

0

¿Cuál es su objetivo?

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

For that, I swear by this method.

2

EQATEC perfilador hizo el trabajo aquí.

11

Mantengo un completo list of profilers for .NET en SharpToolbox.com.

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

+0

Esto parece desactualizado (las entradas de redgate son bastante obsoletas) –

+0

Harry, gracias por señalar esto La información sobre todos los productos de RedGate está actualizada. http://sharptoolbox.com/authors/red-gate-software – Fabrice

2

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.

Cuestiones relacionadas