¿Algún perfilador de C # decente por ahí? [cerrado]


83

Necesito un generador de perfiles de C #.

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

¿Alguna recomendación?



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

Respuestas:


35

Puedes probar lo siguiente:


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


7
He jugado con ProfileSharp. Es absolutamente espantoso.
Matthew Ruston

1
nprof es .Net 1.1 solo creo. Si puede compilar en .Net 1.1, puede ser útil perfilarlo y luego volver a compilarlo en .Net 2 para su lanzamiento. Sin embargo, esto no es posible si comienza a usar funciones .Net2 como genéricos y tipos que aceptan valores NULL.
redcalx

1
De acuerdo con Matthew, ProfileSharp es terrible, no podría hacer que perfilara ni siquiera el exe de línea de comandos más simple. No pierdas el tiempo
Michael Dausmann

El desarrollo en nprof parece haberse recuperado recientemente.
Brian Ortiz

1
He utilizado .Net Memory Profiler para encontrar una pérdida de memoria; es bastante bueno. ¡Tiene mi sello de aprobación!
Cylon Cat

40

Solía hormigas perfilador en un gran proyecto de C # hace un año y medio. Realmente funcionó muy bien por lo que costó, e incluso superó a algunos de los competidores más caros.

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


1
También me gustan las HORMIGAS. Es de Redgate.
Marcel

32

El perfilador 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. Recién comencé a usarlo hoy y ya he encontrado un par de cuellos de botella que no habría detectado de otra manera.


No es gratis para una licencia comercial (pero sigue siendo barato, $ 200).
mhenry1384

Sí, parece que han cambiado las licencias de la última versión y han comenzado a cobrar por uso comercial. Sin embargo, todavía lo recomiendo encarecidamente.
HullCitySteve

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

3
Los términos de la licencia han cambiado nuevamente en la versión 3.6: ahora es gratis para todas las plataformas, incluidas CF y Silverlight, con una restricción en la cantidad de DLL que se pueden instrumentar en una sesión.
Richard Flamsholt

3
Ya no es gratis y ha sido comprado por Telerik :(
pingoo

29

dotTrace de JetBrains se usa ampliamente.

El increíble NDepend de Patrick Smacchia es excelente para proporcionar análisis estático.


1
dotTrace es realmente un excelente generador de perfiles, extremadamente fácil de usar.
Stefan Monov

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

1
Como actualización, tanto dotTrace 4 Performance como dotTrace 3.5 Memory son compatibles con .NET 4.
Jura Gorohovsky


7

Es interesante que nadie mencione que hay uno en las versiones de gama alta de Visual Studio; siempre he encontrado que es lo suficientemente bueno para la generación de perfiles de ejecución. Para la creación de perfiles de memoria, uso Memory Profiler, que ya se ha mencionado, pero no es lo que generalmente describiría como "un perfilador".

¿Qué tipo de elaboración de perfiles estaba intentando hacer?



6

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

Originalmente probé el generador de perfiles ANTS de Red Gate, que es muy sexy, pero desde el punto de vista de la pérdida de memoria, apesta por las siguientes razones:

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

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

Sin embargo, el componente de sincronización 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 (de pequeño tamaño).


2
¿Has probado la v4 de ambos? Es mucho mejor en general ahora :)
thecoop

4

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


AQTime tiene un gran beneficio sobre los ANT, ya que admite código no administrado.
Rick Minerich

3

Seré el perfilador ANTS del segundo Red Gate . Lo usé para rastrear algunos problemas de rendimiento realmente preocupantes y fue muy simple de usar (curva de aprendizaje baja) y presentó datos agradables y detallados de una manera fácil de entender. El precio vale la pena, pero no es gratis ...


2

El increíble NDepend de Patrick Smacchia es excelente para proporcionar análisis estático.

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


2

He tenido buena suerte con el generador de perfiles de memoria .NET


2

El generador de perfiles EQATEC hizo el trabajo aquí.


2

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


1

Actualmente no los utilizo, un amigo mío se entusiasma con el perfilador de hormigas. Sé que es un producto de pago, no estoy seguro de cuán caro. Si tiene un MVP como personal, es posible que pueda aprovecharlo para obtener una licencia gratis.


¿Puede proporcionar un poco más de detalle sobre todo el asunto de MVP? gracias,
kay.one

Los MVP obtienen la licencia para redgate de los productos de forma gratuita, es una laguna que te permite entrar, si tienes personas en tu equipo que son MVP que hacen que el costo no sea un problema.
DevelopingChris

¿Tiene un enlace que describa esta laguna y cómo sacar provecho de ella?
Keith Sirmons

1

AQTime (tanto rendimiento como memoria) o ANTS (perfilador de rendimiento v4 o perfilador de memoria beta v5) aquí.



0

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.


Una forma de acceder al generador de perfiles VS2010 es, después de cargar una solución, en el menú "Depurar" buscar "Iniciar análisis de rendimiento". Los detalles de sus capacidades están en msdn.microsoft.com/query/…
ShawnFeatherly

0

Cual es tu objetivo?

¿Es su objetivo ubicar declaraciones específicas y tener una idea aproximada de lo que contribuyen a su tiempo total de ejecución, para que pueda encontrar formas de hacerlas de manera diferente?

Por eso, lo juro por este método.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.