Estoy buscando un generador de perfiles para mi aplicación C# que se está desarrollando en Visual Studio 2008. Estoy buscando algo que sea económico (se prefiera la fuente abierta) y que pueda integrarse en VS2008. Encontré el Visual Studio Profiler pero no sé cómo usarlo. Instalé la versión de Stand Alone que depende de Visual Studio (no para ser solo, supongo?) Pero nunca aparece nada en el menú de Herramientas, como su recorrido lo dice.¿Dónde puedo encontrar un generador de perfiles para aplicaciones C# para usar en Visual Studio 2008?
Respuesta
Aquí hay una lista de código abierto .Net profilers.
He usado y me gusta el Ants-Profiler de Red Gate, pero cuesta dinero (realmente vale la pena, en mi humilde opinión).
El Visual Studio Profiler es solo parte del Team System. No está incluido en Visual Studio Professional.
Hay un .NET Profiler gratuito llamado nprof, pero aún no se ha lanzado y puede ser bastante volátil. Además, hay algunos perfiladores comerciales excelentes tales como ANTS Profiler from Red Gate; sin embargo, estos no son de bajo costo.
Nunca he usado ANTS Profiler, pero no se puede equivocar con nada hecho por Red Gate a menos que esté dentro de un presupuesto. – TheTXI
Si mal no recuerdo, Red Gate tiene una versión de prueba de 14 días. Definitivamente te aconsejaría que lo uses. Se lo aconsejé a otras personas y terminaron comprando una licencia. – bastijn
Existe alguna discusión sobre los perfiles para .NET en this stackoverflow thread. He usado CLR Profiler algunos, y me ha ayudado a resolver algunos problemas de rendimiento en el software anteriormente. Podría valer la pena probar. Microsoft ha publicado a guide on how to use the CLR Profiler.
Mi recomendación es dotTrace. No es gratis, el precio es de 170 EUR para la licencia personal.
Utilizamos dotTrace en nuestra compañía. Es muy fácil de usar y muy útil. Lo recomiendo :) – Beatles1692
También uso su versión de prueba, hasta que dure :) y me encanta su simplicidad y la forma en que gestiona proyectos multilenguaje. http://stackoverflow.com/questions/906915/c-code-performance/907676#907676 –
Lo usé y funciona muy bien para la creación de perfiles de rendimiento, siempre que su solución no sea demasiado grande. Intenté ejecutar 5000 pruebas unitarias en modo de perfil y mi memoria no era suficiente (y tengo 8 Gigs en mi pc dev). Así que dottracer consume muchos recursos. – crauscher
Si lo que desea es hacer perfiles de memoria, la .NET Memory Profiler es excelente. Tiene un período de prueba y un pequeño costo después de eso, vale la pena. Si quiere gastar algo de dinero, DevPartner Studio es muy bueno.
En este momento estoy buscando el tiempo de ejecución por método, pero el perfilado de la memoria puede venir más tarde – Malfist
Puedo responder por .NET Memory Profiler. ¡Quién dice que no puedes tener pérdidas de memoria en .NET! –
no son pérdidas de memoria en el sentido tradicional, pero sí, puedes tenerlas. GC no es perfecto, incluso en Java. – Malfist
Echa un vistazo a EQATEC profiler, gratis y funciona bastante bien. También funciona para ASP.NET y .NET CF.
Para la optimización del rendimiento, a diferencia de los diagnósticos de memoria, hay un simple way to do it.
Es contradictorio, pero todo lo que tienes que hacer es ejecutar el programa bajo el IDE, y mientras está siendo lento, pausarlo varias veces, examinando la pila de llamadas para ver por qué está haciendo lo que está haciendo. Es muy probable que muestras múltiples lo muestren haciendo algo que podría eliminar. El tiempo ahorrado es aproximadamente igual a la fracción de muestras que contenía el código que arregló.
Es "rápido y sucio", pero a diferencia de la mayoría de los perfiladores, identifica las afirmaciones reales que requieren atención, no solo las funciones que las contienen. También proporciona directamente una estimación aproximada de la aceleración que puede esperar al solucionarlos. No se confunde con la recursión y evita la dificultad del árbol de invocación de que un problema sea pequeño en cualquier rama, pero podría ser grande si se distribuye en muchas ramas.
Tomo varias muestras N, generalmente no más de 20. Si hay un punto de acceso o un método deshonesto, llame a algún lugar en la mitad de la pila, tomando una fracción F del tiempo de ejecución, entonces el número de muestras que lo mostrará NF + - sqrt (NF (1-F). Si N = 20 y F = 0.15, por ejemplo, el número de muestras que mostrarán que es 3 + - 1.6, por lo que tengo una excelente oportunidad de encontrarlo.
menudo F es más como 0,5, por lo que el número de muestras que muestra es 10 + - 2,2, por lo que no se puede perder.
Aviso esto no tiene absolutamente nada que ver con lo rápido que el código es, o la frecuencia con que se ejecuta. Si optimizarlo le ahorrará un determinado porcentaje de tiempo, eso determinará qué porcentaje de muestras lo mostrará por usted.
Por lo general, hay varios lugares para optimizar. Si el problema 1 tiene F1 = 0.5, y el problema 2 tiene F2 = 0.1, entonces si arreglas el problema 1 (doblando la velocidad del programa), entonces F2 generalmente aumenta en ese factor, a 0.2. Así que puede hacerlo nuevamente y estar seguro de encontrar el problema 2. De esta manera, puede eliminar una serie de problemas, hasta que el código sea prácticamente óptimo.
¡Jaja, diviértete, nos vemos en unas pocas décadas! ¿Qué pasa si tienes millones de llamadas? – leppie
@leppie: ¿Perdón? Si te refieres a millones de llamadas por segundo, eso no importa. Lo que importa es el porcentaje de tiempo. Y, por cierto, esto se puede hacer en una fracción del tiempo que lleva instalar y aprender una herramienta. –
¿Fue ese voto negativo porque no creía que iba a funcionar, o simplemente no le gustaba? –
- 1. Cómo hacer perfiles de rendimiento en Visual Studio 2008 "Pro"
- 2. Perfilado en Visual Studio 2008 PRO
- 3. ¿Puedo usar MVC3 en Visual Studio 2008?
- 4. Bootstrapper Manifiesto generador para Visual Studio 2010
- 5. Profiler para Visual Studio 2008, C++?
- 6. XML Schema Designer para Visual Studio 2008
- 7. No puedo encontrar xsd.exe en Visual Studio 2008?
- 8. Cómo incluir y dónde encontrar pthread.h para Visual Studio?
- 9. ¿Dónde puedo encontrar la aplicación para IVCWizCtlUI
- 10. Visual Studio 2010 Perfiles de publicación: ¿Dónde están almacenados?
- 11. ¿Dónde puedo encontrar temas de color para Visual Assist X?
- 12. ¿Dónde puedo encontrar WcfTestClient.exe (parte de Visual Studio)
- 13. ¿Cómo puedo encontrar un llamador de método al recorrer C# en Visual Studio 2008?
- 14. ¿Dónde puedo encontrar el esquema (XSD) para un archivo .csproj?
- 15. Sistema operativo recomendado para Visual Studio 2008
- 16. ¿Cómo configurar Visual Studio 2008 para usar IIS Express?
- 17. ¿Puedo usar .NET 4.0 beta en Visual Studio 2008?
- 18. ¿Dónde puedo encontrar WSDL.exe?
- 19. resaltado de sintaxis C++ para Visual Studio 2008?
- 20. Generador de documentación Visual studio C++
- 21. Aplicaciones de generación de perfiles C#/.NET
- 22. Introducción para principiantes a pruebas unitarias en Visual Studio 2008
- 23. Complejidad ciclomática para Visual Studio 2008
- 24. ¿Dónde está el registro de bloqueo de Visual Studio 2008?
- 25. ¿Dónde puedo encontrar indicadores de colores para usar en Cocoa?
- 26. Cómo usar IronPython con Visual Studio 2008
- 27. ¿Cómo configuro Visual Studio 2008 para programar en Perl?
- 28. Atajo de teclado de Visual Studio 2008 para mostrar miembros?
- 29. Configurar Visual Studio para usar más RAM
- 30. ¿Es posible usar C# 4.0 con Visual Studio 2008?
¿Está utilizando VS Express? – GEOCHET
No, tengo la versión Pro – Malfist