2009-02-21 21 views
6

Microsoft crea esta pieza de software llamada "Visual Studio 2008 Professional". Descubrí que no parece haber un perfilador del rendimiento de la aplicación o algo similar, lo que hace que parezca que no es tan "profesional" para mí.Cómo hacer perfiles de rendimiento en Visual Studio 2008 "Pro"

Si Microsoft no incluye un generador de perfiles, ¿cuáles son sus opciones de terceros para crear perfiles de tiempo para Visual Studio 2008? Gratis sería preferible, ya que esto es para fines de estudiantes universitarios: P

Respuesta

4

Personalmente, uso el perfilador Red Gate.

Otros juran por el JetBrains uno.

Esas parecen ser las opciones, y no hay mucho entre ellas.

0

Uso el dotTrace de JetBrain y funciona bastante bien.

3

utilizo JetBrains dotTrace profiler. Este es un perfilador comercial. (Divulgación: recibir una licencia libre como un MVP Se ha demostrado ser muy útil sin embargo..)

También existe la libre CLR Profiler for .NET 2.0 y an article explaining how to use it.

+1

Tenga en cuenta que el libre es realmente muy bueno para el rastreo de memoria * * asignación, pero el análisis Potencia recta que arrastra los otros sistemas. No hay archivos que conozco que admitan perfiles de modo mixto o muestreo en lugar de instrumentación. AQTime y el sistema Team uno hacen esto – ShuggyCoUk

+0

. Probé con la demo de dotTrace. Esperaba que no fuera lo que esperaba, pero lo fue. Te inunda con cosas bellamente presentadas que no importan. Lo que sí importa es que gasta más del 90% de su tiempo en la llamada a 'myBitmap.SetPixel', y el pequeño resto en varios lugares, como intersectar un rayo con una esfera, como se muestra fácilmente con no muchas pausas. Navegué por todos lados en DT, pero nada allí me dijo lo que me dijeron las pausas. –

+0

@MikeDunlavey: Realmente no tengo suficiente contexto para entender ese comentario, pero dotTrace ciertamente me ha ayudado a encontrar cuellos de botella en Noda Time ... –

6

Hay un par de perfiladores libres, no como completas o pulidas como las comerciales, pero que sin duda puede ayudar mucho:

Eqatec - Este fue diseñado para Windows CE, pero funciona bien para las aplicaciones normales .

Soft Prodigy Profile Sharp - Este es en realidad un proyecto de código abierto escrito en C#, por lo que puede jugar con él si lo desea.

0

same answer as:

reeditada: Usted preguntó cuáles eran sus opciones. Si su corazón está configurado en la creación de perfiles, busque un generador de perfiles.

Por otro lado, si realmente tiene un problema de rendimiento que encontrar, el método simple funciona tan bien o mejor que casi cualquier generador de perfiles. Digo casi todo, porque en algunos perfiladores realmente puede deducir lo que necesita saber, que es el costo de tiempo atribuible a las instrucciones individuales, especialmente las instrucciones de llamada.

El costo de tiempo de una instrucción es la cantidad de tiempo que se ahorraría si la instrucción se pudiera eliminar, y una buena estimación de ella es la fracción de las muestras de la pila de llamadas que la contiene. No necesita estimar esa fracción con alta precisión.Si la instrucción está en 5 de 10 muestras, su costo es probablemente en algún lugar dentro del rango del 45% al ​​55%. No importa, si pudiera deshacerse de él, ahorraría su costo.

Por lo tanto, encontrar problemas de rendimiento no es difícil. Simplemente tome una cantidad de muestras de la pila de llamadas, recopile el conjunto de instrucciones en esas muestras y clasifique las instrucciones por la fracción de muestras que las contiene. Entre las instrucciones de fracciones elevadas hay algunas que puedes optimizar, y no tienes que adivinar dónde están.

Estoy simplificando un poco, porque a menudo es útil examinar más información de estado que solo la pila de llamadas, para ver si realmente se necesita algún trabajo. Pero espero que el punto esté hecho.

Las personas expresan dudas de que podría funcionar en presencia de recursión, o trabajar en programas grandes. Un poco de pensamiento (y experimentación) muestra que esas objeciones no se sostienen.

+0

Sin embargo, mi pregunta es específica de Visual Studio 2008 –

+0

Funciona en cualquier IDE, incluido VS . –

Cuestiones relacionadas