.net wpf mvvm profiling .net-4.5

.net - ¿Cómo perfil el rendimiento UI de WPF 4.5?



mvvm profiling (2)

Resulta que las versiones posteriores de Visual Studio tienen esto incorporado, por lo que ahora con Visual Studio 2013, puedo crear una nueva sesión de perfil abriendo Visual Studio, y desde el menú superior hay un menú desplegable Analizar, solo tiene que ir Analizar -> Perfilador -> Adjuntar / Separar para adjuntarlo a un proceso existente que se ejecuta en modo Depuración (parece que tengo que hacer esto dentro de otra ventana de Visual Studio o si no está atenuada). Pero, nota al margen: es realmente malo y no muy intuitivo ... Recomendaría usar algunos perfiladores comerciales más agradables porque son mucho más simples.

Estoy desarrollando una aplicación .NET 4.5 WPF y tengo problemas de rendimiento de representación de la interfaz de usuario.

Después de buscar en Google, me encontré con la página WPF Performance Suite que describe exactamente la herramienta que necesito: Visual Profiler. Permite ver los elementos de WPF en árbol y analizar la contribución de cada elemento al tiempo total de renderizado.

El único problema es que la página indica que la herramienta está contenida en el SDK v7.1 de Microsoft Windows que apunta a Windows 7 y .NET 4.0.

Como mi aplicación es .NET 4.5 y tengo Windows 8.1, instalé Windows SDK para Windows 8.1 . Para mi sorpresa, no parece contener el WPF Performance Suite en absoluto y esa herramienta en particular.

Luego, intenté instalar el WPF Performance Suite a partir de esta respuesta, pero solo funciona con las aplicaciones .NET 4.0 .

Entonces, ¿dónde obtienes la WPF Performance Suite para aplicaciones .NET 4.5?
O, para ser más generales, ¿cómo se perfila el rendimiento de la IU de WPF en el rendimiento de las aplicaciones .NET 4.5 para descubrir qué elementos del árbol tienen el mayor impacto en el rendimiento de las IU complejas?


Eventualmente, encontré una herramienta que estaba buscando y que fue realmente útil para mí.

Para tener una idea de dónde está exactamente el cuello de botella al renderizar su diseño WPF, quiere:

  1. Instala Visual Studio 2015 , si aún no tienes uno :)
  2. Vaya a Depurar -> Iniciar herramientas de diagnóstico sin depurar
    ( NOTA : Esto parece haber cambiado a Depurar -> Perfilador -> Perfilador de rendimiento ... ).
  3. Compruebe la herramienta de la línea de tiempo de la aplicación y pulse Comenzar en esta vista:

  1. Cuando se inicia su aplicación, realice las acciones que causan los problemas que le interesan.
  2. Luego pulse Detener la grabación y eventualmente obtendrá su árbol de elementos con los tiempos gastados para representar cada nodo. Entonces, solo necesita ordenarlo por Duración (total) y expandir los nodos más lentos hasta que encuentre el problema:

En conclusión, sería mucho más fácil correlacionar los nodos del árbol de arriba con su diseño si establece nombres para sus controles utilizando el atributo Name como el siguiente:

<TextBlock Name="OwnerContact">