¿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.
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.
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.
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?
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).
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 ...
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.
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.
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í.
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?
Respuestas:
Puedes probar lo siguiente:
Editar: Nprof ha sido reemplazado por SlimTune y funciona con aplicaciones .Net 4.0
fuente
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.
fuente
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.
fuente
dotTrace de JetBrains se usa ampliamente.
El increíble NDepend de Patrick Smacchia es excelente para proporcionar análisis estático.
fuente
Mantengo una lista completa de perfiladores para .NET en SharpToolbox.com.
Allí encontrará las herramientas sugeridas aquí y más, cada una con una breve descripción de lo que propone.
fuente
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?
fuente
Usamos el perfilador de hormigas donde trabajo. Da información muy detallada de forma sencilla.
fuente
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).
fuente
He usado AQtime y nunca me ha defraudado. Estoy seguro de que hay una versión de prueba.
fuente
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 ...
fuente
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.
fuente
He tenido buena suerte con el generador de perfiles de memoria .NET
fuente
El generador de perfiles EQATEC hizo el trabajo aquí.
fuente
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.
fuente
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.
fuente
AQTime (tanto rendimiento como memoria) o ANTS (perfilador de rendimiento v4 o perfilador de memoria beta v5) aquí.
fuente
Encontré el .NET Memory Profiler ayer, y debo decir que estoy muy impresionado por él.
Voy a pedir mi licencia hoy.
fuente
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.
fuente
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.
fuente