Sé que esto es una vieja pregunta, pero algunos consejos que espero ayudar a usted u otras personas:
A partir de perfiles se detuvo.
Esto le permite simplemente Perfil La única página que desea enfocar, y reducir el ruido de la aplicación de disparar hacia arriba, la página de inicio de carga, navegando a lo que quiere medir, etc.
- Desde el menú, seleccione Analizar> Profiler> Comience con perfiles pausa
- continuación navegue por su página web hasta el punto justo antes la página que desea al perfil
- Ahora en VS2010 en la página de perfil del clic 'Reanudar' a comenzar a perfilar
- De nuevo en su sitio web, haga clic en el enlace o botón etc, para cargar la página que desea al perfil
- Espere a que cargue, luego de vuelta en VS2010, haga clic en 'Detener perfiles'
- Después de unos momentos de su perfil el resumen se cargará
Encontrar los cuellos de botella a través del 'Camino caliente'
- Una vez que el resumen del perfil se haya cargado, cambiar la vista actual de llamadas en árbol
- Haga clic en 'Expandir Ruta caliente' (botón con una icono de la llama)
- Esto le mostrará el peor momento de consumir la función y la pila de llamadas que conducen a ella
Interpretación de los datos
- la segunda columna de cifras ('Transc Exclusiva') que muestra el tiempo empleado en esta función particular (método etc) excluyendo las llamadas que hace a otras funciones.
- La penúltima columna ('Número de llamadas') indica cuántas veces se llamó a esta función en particular.
- Una combinación de estas dos columnas puede ser una gran pista sobre dónde se encuentra un cuello de botella.
- Por ejemplo, es posible que encuentre un System.Linq.Queryable.La función [algo] ocupa una gran parte del tiempo total y se llama 10 o 100 veces ... De ser así, es posible que refinar el código para optimizarlo y reducir el número total de llamadas sea útil. ..
- Recorrer el árbol le indicará qué función instigó las llamadas a esta función de cuello de botella y, a su vez, qué función llamó a esa función y así sucesivamente.
De esto, al menos debería ser capaz de identificar dónde están los cuellos de botella en el rendimiento y por qué están sucediendo. A menudo, el próximo desafío es encontrar una forma más refinada de lograr el mismo resultado con menos llamadas a funciones que consumen mucho tiempo, llamadas a bases de datos, operaciones de IO, etc.
Espero que esto ayude como iniciador para usted o otros que se encuentran con esta pregunta (común).