2009-08-06 17 views
10

Tengo una aplicación WPF, que a veces se congela durante aproximadamente medio minuto y luego funciona bien. Estoy pensando en perfilar esa aplicación. ¿Alguien sabe un buen tutorial de cómo perfilar la aplicación WPF? ¿Alguien tiene alguna idea de cómo saber cuándo está helando? La congelación no es consistente y no está relacionada con ningún patrón de usoAplicación de perfil WPF

Gracias por su ayuda.

Ghassan

Respuesta

10

Hay un conjunto de herramientas en el Windows SDK llamada WPFPerf - que tiene un conjunto de herramientas (como perforador) que ayudan específicamente con WPF depuración y perfilado. Here's a quick guide en estas herramientas.

Para perfiles generales de .net, RedGate Ants o JetBrains' dotTrace son geniales. También hay algunos profiling included in Visual Studio 2005/2008 (¿y mejores en 2010?).

+0

Según este enlace (http://msdn.microsoft.com/en-us/library/ms182372%28v=vs.100%29.aspx), VS2010 Performance Profiler no está disponible en todas las ediciones. – kevinarpe

+0

@PhilipRieck: ¿Cuál es la alternativa actual para WPF Performance Suite para perfilar aplicaciones .NET 4.5? Le agradecería mucho si echa un vistazo a mi pregunta [aquí] (http://stackoverflow.com/q/33468572/3345644). –

1

La generación de perfiles es exagerada. Durante ese medio minuto, está esperando algo. Just pause it and see what it's waiting for.

+0

Aunque estoy de acuerdo en que esta es una buena técnica para usar en general, no estoy de acuerdo en que siempre sea causada por un ciclo infinito. Podría haber bloqueos pasando por alguna API esperando por un recurso. Hay muchas razones por las que su IU podría congelarse que no están relacionadas con un ciclo infinito. Solo digo esto solo para asegurarme de que nadie vaya en una loca búsqueda. –

+0

@Anderson: OK, reformulé para eliminar la parte del "bucle casi infinito". El principio es el mismo. Durante ese medio minuto, está en un estado en el que está esperando algo, después del cual reanudará el trabajo útil. Solo deténgalo y verá lo que está esperando, ya sea un bucle de bajo nivel, obtener un recurso, lo que sea. La gente piensa que esto es difícil, y no lo es. –

Cuestiones relacionadas