domingo, 2 de septiembre de 2012

Uso de Duración (SPAN): SDK Visualizador de Concurrencia

Como definimos anteriormente, un SPAN representa una fase de la aplicación, en el ejemplo mostrado al inicio de este blog, no es fácil conocer el trabajo realizado por cada uno de los métodos tanto Metodo1 como el Metodo2.
clip_image001



Si revisamos la grafica anterior podermos ver que es lo que esta pasando en el hilo principal, pero no tenemos idea que sucede específicamente,en que momento se esta ejecutanto cada uno de los métodos. Lo que podríamos hacer para deducir que es lo que esta realizando , es revisar cada uno de los segmentos de color verde y mirar el llamado de la pila, para determinar en donde finaliza cada uno de los métodos y donde inicia el siguiente, pero esto no necesariamente me garantiza lo que en verdad esta sucediendo. El nuevo SDK nos ayuda a poder intrumentar nuestras aplicaciones en paralelo, miremos como se puede hacer en el siguiente código.
clip_image003

Al compilar y analizar con el visualizador de concurrencia, obtenemos la siguiente grafica en donde aparece en la columna Izquierda un nueva fila la cual es llamada CANAL, y es nombrada con el espacio de Nombres del SDK, (ConcurrencyVisualizer.Markers), en esta fila ya podemos ver en qué momento se está iniciando y finalizando, cada uno de los métodos con respeto al hilo principal de ejecución. Fijemos que la separación entre cada uno de los métodos conrresponde a la impresión que se realiza en la consola diciendo que el método 1 a terminado.
clip_image005



Como vemos el tiempo de cada uno de los métodos, visualizamos que el metodo1 tarda menos que el Metodo 2 ya que el ciclo del metodo1 va hasta 100 y el del Metodo2 va hasta 200. De hecho si seleccionamos con el Mouse cada uno de los Metodos, podremos saber cual es el tiempo de ejecución de cada uno de ellos, Por ejemplo:
clip_image009 clip_image008

El metodo1 donde el ciclo va hasta 100 tarda 18.5279 Milisegundos y el Metodo2 donde el ciclo va hasta 200 tarda 22.0959 ms.
Fijemos que el ID del hilo asociado con el canal Marker es el mismo ID que del hilo principal, visualizando en la grafica es el Hilo con ID 6544, este ID esta ubicado al lado izquiero del nombre del canal. Esto indica que los eventos del Marker fueron generados desde el hilo principal. Si estos eventos son generado a partir de un hilo diferente, el canal estará asociado con el ID desde el hilo que lanzo el evento.
Espero puedan practicar con el fin de que se familiarizen con el uso de este SDK.

DESCARGUE EL CODIGO DE EJEMPLO AQUI










No hay comentarios:

Publicar un comentario