5

Tengo un espacio de trabajo de solución de Visual Studio 2005 que a su vez tiene 8 proyectos incluidos. Quiero perfilar el código completo (todos los proyectos) y obtener alguna medida sobre los ciclos absolutos tomados por cada función para ejecutar, o al menos porcentaje de consumo de ciclo.Elaboración de perfiles de código en Visual Studio 2005

Revisé la ayuda para VS 2005, y también las opciones de configuración del proyecto, pero no pude encontrar ningún puntero en hwo para obtener la información del perfil. Cualquier ayuda con respecto a esto sería beneficioso.

-AD.

+0

perfil o perfil de código? Acabo de repetir algunas preguntas desde la creación de perfiles de código hasta la creación de perfiles, porque el perfil era la etiqueta más común ... –

Respuesta

2

Supongo que el generador de perfiles incorporado de Visual Studio 2005 viene onyl con Developer Edition y Team Edition. Tengo una edición profesional que, al parecer, no tiene la herramienta Profiler incorporada.

-AD

1

Utilizamos DevPartner con Visual Studio 2005. Se le da el análisis del rendimiento de los proyectos específicos en su solución que desea ver. También lo usamos para análisis de gestión de memoria y análisis de errores. Es una herramienta comercial, así que no es gratis.

3

Si su aplicación no es particularmente intensiva en el uso del procesador, redgate ANTS Profiler es una buena opción: las estadísticas línea por línea pueden ser muy útiles, y todo el producto está limpio y bien diseñado.

Si su aplicación necesita una gran cantidad de CPU para funcionar normalmente, sin embargo, la mayoría de los perfiladores .NET en el mercado no podrán manejarlo. Los únicos dos que he encontrado que funcionarán para una aplicación realmente pesada son JetBrains dotTrace y YourKit. Los dos son muy similares, lo que no es sorprendente, dado que YourKit parece haber sido iniciado por un ex empleado de JetBrains. Personalmente prefiero dotTrace, pero puede ser porque eso es lo que usé primero, y nunca ha habido una buena razón para cambiar.

He probado ANTS, AQTime, DevPartner, GlowCode, Borland OptimizeIt y Intel VTune, y todos ellos tienen demasiada sobrecarga para manejar una aplicación exigente. (VTune es una posible excepción, pero es tan terriblemente complejo de configurar y usar que nunca fui capaz de descubrir exactamente lo que podría manejar. También es muy costoso)

0
Si su aplicación necesita mucha CPU para operar normalmente, sin embargo, la mayoría de los perfiladores .NET en el mercado no podrán manejarlo.

He usado una versión de prueba del perfilador de RedGate Ant en un algoritmo de optimización que normalmente utiliza hasta 100% de CPU en máquinas de un solo núcleo y, aunque lento, logró pasar e informar todo lo que necesitaba saber. Herramienta extremadamente útil. Me pregunto qué tipo de algoritmos has ejecutado en el generador de perfiles de Ant.

¿Alguien ha usado el generador de perfiles VS?

2

He utilizado tanto el generador de perfiles en DevPartner de Compuware (me gusta llamarlo "TrueTime") y Rational's Quantify. Siempre me gustó Quantify, pero como me he movido entre compañías, DevPartner ya es el "estándar".

Ambos son caros, pero (parecen) agregar tanto valor que cualquier tienda comercial no debería tener problemas para invertir en algunos asientos.

Cuantificar no requirió reconstrucciones especiales del proyecto, lo cual fue EXCELENTE. También colapsó menos (eso no es mucho decir, tenía sus propios problemas). DevPartner también tiende a romperse a medida que se lanzaba cada nueva versión de Visual Stuido (¿quizás esto sea mejor ahora?). Compre el contrato de mantenimiento anual si sigue así.

Dicho esto, a menudo solo escribo una clase que recuerda el tiempo en la construcción y escupe (archivo de registro) el tiempo transcurrido en su destructor. Usé QueryPerformanceCounter. Me quedaría esta clase en la parte superior de la función que me gustaría cronometrar. Podrías imaginarte haciendo una macro, usar el preprocesador para incluir esta clase solo bajo una construcción especial ...

Cuestiones relacionadas