2011-06-28 13 views
6

Revisé algunos de los perfiladores de rendimiento mencionados en here. Pero ...Free .NET Profiler para .NET 4.0 código mixto

  • EQATec no funcionó para mí porque tengo muchos ensambles que quiero perfilar, y tiene un límite en los ensamblajes del perfil. ¿Cuánta molestia es obtener una licencia gratis? Me gustaría ir para que si alguien me puede garantizarse que EQATEC perfil tanto de código administrado y no administrado
  • SlimTune sólo se perfila mi código administrado, incluso si fijo "Perfil funciones nativas" a "True"
  • XTE Profiler ya no es gratis
  • Tenemos una copia de AQTime 6 que compramos antes, pero no parece ser compatible con las aplicaciones .NET 4.0 (ni siquiera puede iniciar mi aplicación)
  • Utilizamos Visual Studio 2010 Professional SP1, entonces no tengo el analizador de Visual Studio
  • Probé el "perfil del pobre" (deteniendo el programa muchas veces y viendo dónde está), pero obtengo resultados demasiado aleatorios y estoy más acostumbrado a la tradición l perfiles

(he pasado todo el día perplejo en esto, lo siento si yo era demasiado negativo)

ACTUALIZACIÓN: Después limpié mi solución, construido de nuevo y comprobado toda la información de depuración (.pdb) se copió en el mismo directorio que el ejecutable, ¡probé AQTime nuevamente y funcionó! Me mostró información de tiempo de rutina para el código administrado y no administrado, por lo que mi problema está resuelto. Sin embargo, estoy usando un perfil pagado, por lo que la pregunta permanecerá abierta hasta que eche un vistazo a xperf o alguien aparezca con otra cosa

+2

+1; ¡No creo que parezcas negativo! Creo que pareces frustrado, pero ya que documentas bien tu frustración, es difícil estar en desacuerdo (no ser flojo, un pincher en el peor de los casos) – sehe

+0

+1 por enseñarme la expresión "penny pincher" ...? (No soy un hablante nativo de inglés): P –

+0

yo tampoco, lo busqué :) [Se movió de un lado a otro a través de un diccionario de sinónimos simplemente para encontrar algo que coincidiera con lo que quería expresar] (http: //www.thefreedictionary. com/Scrooge) – sehe

Respuesta

1

OP: "Me atrevería si alguien me garantiza que XXXX puede perfil código administrado y no administrado "

Nuestra C# Timing Profiler no depende de cómo se compila (compila o no, o mezcla) su código C#. Debería funcionar bien para esto.

+0

Gracias, lo echaré un vistazo –

+0

No está bien, olvidé que nuestra base de código tiene algunas DLLs escritas en VB.NET, así que no creo que su solución lo haga –

+0

Actualmente no tenemos una herramienta de perfilador de VB.net, verdadera. Sin eso, el perfilador de C# no podrá capturar el tiempo dentro de las rutinas de VB.net, pero debería capturar el tiempo de ejecución de todo el código de C#. –

0

CLR Profiler 4 de Microsoft es gratis. ¿Lo has probado?

¿Qué busca en la parte no administrada del generador de perfiles?

+0

Lo mismo busco en la parte gestionada: qué función o línea consume más tiempo. Lo intenté una vez, se bloqueó tan pronto como lo lancé. Grave. –

0

Su preocupación acerca de EQATEC Profiler se resuelve fácilmente: solo hace perfiles de .NET administrados, en absoluto ningún tipo de perfil no administrado.

Como se muestra en pricing, la funcionalidad real de creación de perfiles difiere solo en el número de conjuntos que se pueden perfilar a la vez. Así que una edición gratuita de $ 0 perfila una aplicación WP7 de ensamblaje único tan buena como una edición corporativa de $ 999. Para obtener el precio adicional puede configurar más conjuntos a la vez y algunas funciones secundarias, como imprimir, comparar, mínimo/máximo, etc.

Obtener una licencia gratuita por trying out Se dice que EQATEC Analytics es fácil. Apostar por la licencia corporativa ilimitada es una opción bastante popular y muchos lo han logrado en solo un par de horas. Obtener una licencia estándar gratuita de $ 99 no debería tomar más de 10 minutos más o menos, si es bueno. Tenga en cuenta: trabajo en EQATEC y actualmente distribuimos tantas licencias gratuitas todos los días que ahora es casi una carga porque cada una se procesa manualmente (¡sí, en serio!) Por lo que esta oferta en particular puede no durar para siempre.

+0

Disculpe, si no maneja el código no administrado, no me ayudará –

3

AQTime tiene una versión gratuita de su último generador de perfiles (http://smartbear.com/products/free-tools/aqtime-standard/) Es compatible.Net 4, pero dudo que pueda hacer un perfil mixto de Native and Managed.

Si realmente habla en serio, puede consultar las herramientas Microsoft xperf (http://msdn.microsoft.com/en-us/performance). Tienen una gran curva de aprendizaje, pero son gratis y dudo que ningún perfilador comercial pueda hacer lo que xperf puede (la instrumentación está en el sistema operativo, no en un proceso separado, por lo tanto, se requieren Vista, win7 o win2K8). Estoy esperando a que alguien escriba una buena GUI a su alrededor, pero me está costando un poco ... ;-)

xperf perfilará su código nativo y podrá cargar sus símbolos en el visor de resultados. Sin embargo, no creo que vaya a bajar a la granularidad por línea. Tiene un proveedor .Net CLR (http://msdn.microsoft.com/en-us/library/dd264809.aspx). Lo bueno de xperf es que también puede mostrar otros procesos que pueden estar influyendo en tu rendimiento (puedes apagarlo y solo perfilar tu propio proceso). Por ejemplo: es capaz de revelar que su IO es lento debido a un controlador USB mal escrito, un escáner de virus o un software de firewall. Un generador de perfiles tradicional solo mostraría el IO lento, lo que provocaría que se centrara en un cuello de botella que no sea cuello de botella.

Por cierto, también hay una interfaz ICorProfilerCallback que puede utilizar para escribir su propio generador de perfiles (http://msdn.microsoft.com/en-us/library/s5ec0es1.aspx).

1

Estoy bastante seguro de que la respuesta a su pregunta es "No hay una".

Al comparar un grupo completo de perfiladores .NET hace unos meses, encontré que muy pocos podían hacer perfiles mixtos .NET/nativos: AQTime ($ 599) y Glowcode ($ 499) podrían. O eso dicen, no lo intenté.

EQATEC, Visual Studio, HORMIGAS, Jetbrains dotTrace, Yourkit, XteProfiler, Slimtune etc. no pudieron, así que dudo que encuentres un generador de perfiles gratis en el corto plazo que pueda.

+0

¿Ha probado xperf? Ver la respuesta de @Louis Somers –

+0

He usado xperf, pero solo para código nativo, no código administrado. En general, no es una herramienta fácil de usar. Simplemente eche un vistazo a la "guía fácil de 10 pasos" en http://blogs.msdn.com/b/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx y Verás lo que quiero decir. Todo lo que obtienes son gráficos brutos de ciclo de CPU para llamadas de biblioteca/sistema sin correlación con el código de tu propia aplicación y, en mi opinión, esto solo significa que xperf simplemente no es una herramienta seria para el perfil .NET. –

+0

He leído la publicación a la que se ha vinculado y no estoy tan seguro, quizás es posible configurar xperf para que use los símbolos de depuración de mi aplicación, así como los del tiempo de ejecución. Lo probaré y volveré a verlo, pero podría llevar algo de tiempo porque ahora tengo exámenes en la universidad –