2011-03-10 22 views
6

Me gustaría intentar mejorar el rendimiento de mi aplicación para ciertas tareas. Hay algunas ideas que me gustaría probar, pero no estoy seguro de cómo puedo medir cuantitativamente el rendimiento "antes" y "después".WP7 - Midiendo mejoras de rendimiento

¿Cuál es la mejor manera de hacer esto en WP7? Sería bueno si pudiera hacer esto tanto en el emulador como en un dispositivo.

Gracias por su ayuda, Ashish

EDIT:

Me preocupa sobre todo con los tiempos de carga. La aplicación lee un archivo XML del almacenamiento aislado y completa un ListBox. Actualmente estoy usando XDocument y LINQ para leer todo el archivo antes de rellenar el ListBox.

Me gustaría cambiar a usar XmlReader y agregar elementos a medida que se leen. Idealmente, la lectura ocurriría en un hilo separado, y me gustaría añadir los elementos de uno en uno (o tal vez un puñado a la vez si que tiene un mejor rendimiento) a la ObservableCollection que el ListBox está enlazado.

Gracias por las respuestas hasta ahora, investigaré tanto el contador de perfiles como el de alta resolución para sincronizar las operaciones.

Respuesta

3

El EQATEC WP7 Profiler le dará buenos tiempos sobre cómo sus mejoras se van, sino que también va a ayudar a decidir sobre dónde enfocar en futuras mejoras. Solo he usado la versión gratuita, pero ciertamente me ayudó mucho.

+0

El generador de perfiles es agradable, pero tiene un gran inconveniente. Siempre desinstala y reinstala la aplicación. Esto borra el almacenamiento aislado y mi archivo XML junto con él. Así que tendré que encontrar alguna solución para eso. – Praetorian

+0

Es probable que esto cambie en el siguiente lanzamiento, por lo que el generador de perfiles siempre acaba de instalar la aplicación si es posible. Pregunta: ¿a veces desea reinstalar su aplicación, o "siempre instalará, pero le ofrecerá volver a instalar si la instalación falla" que se ajuste a sus necesidades? (perdón por el fuera de tema) –

+0

@Richard Flamsholt: Actualmente, no tengo que volver a instalar, pero puedo ver cómo una opción así podría ser útil en algunos casos. Pero me gustaría que el generador de perfiles pida confirmación si determina que es necesaria la reinstalación. ¿Alguna idea de cuándo esta actualización podría estar disponible? – Praetorian

1

Si está hablando de tiempo, puede crear una instancia de DateTime antes de la operación y luego obtener el tiempo de ejecución después de que termine y hacer lo mismo para el nuevo código.

+0

Debe usar 'StopWatch' en lugar de' DateTime' para obtener resultados más precisos. –

+0

No sabía nada de esa clase, gracias. –

5

Hay un par de cosas que puede hacer.

He encontrado este post particularmente útil. http://www.geoffhudik.com/tech/2010/10/9/basic-windows-phone-7-diagnostics.html

Además, si usted tiene problemas de velocidad de fotogramas específicos que desea realizar un seguimiento de intentar algo como se explica aquí: http://www.jeff.wilcox.name/2010/07/counters/

Si se trata de mejoras de sincronización simples Me gustaría utilizar un temporizador de más alta resolución que el objeto DateTime como Josh sugirió.

La clase Stopwatch le dará los tiempos más precisos