SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Instruments: el 3 en 1 de los
desarrolladores
Juan A. Martín
Agenda
• Intro
• Algunos escenarios de uso:
• Memoria
• Gráficos
• UI
Intro
• Las Apps son cada vez más complejas,
expuestas a factores externos, integradas con
otros complementos (soft, hard)
• Necesitamos saber que sucede mientras
nuestras Apps están siendo usadas
• Necesitamos saber por qué no funcionan como
esperábamos
Intro
• Podemos conocer que sucede en nuestra App a
través de dos herramientas:
• Gauges
• Instruments
Intro
• Gauges: integrado en el propio Xcode, nos
proporciona información básica de CPU y
memoria mientras depuramos
• Info básica pero muy util, p.e. si usamos colas y
les ponemos nombre podemos ver la actividad
del Thread a simple vista
Intro
• Cuando Gauges no cubre nuestras necesidades
tenemos Instruments
• Instruments es una herramienta complementaria
a Xcode, está incluida en el entorno.
Instruments
• Instruments es una herramienta complementaria a Xcode, está
incluida en el entorno.
• Con Instruments podemos:
• Examinar el comportamiento de uno o varios procesos
• Hacer un análisis de rendimiento
• Automatizar test de UI
• Someter nuestras Apps a Stress
• …
Instruments
• Visión rápida de Instruments (ver instruments)
Instruments
• Requisitos: podemos utilizar la herramienta
sobre los dispositivos o el simulador, en función
al tipo de plantilla que usemos será necesario
añadir alguna variable de entorno o setting de el
dispositivo.
• Limitaciones: No siempre podemos aplicar las
plantillas sobre los dispositivos (p.e. Core Data)
Instruments
Instruments
• Podemos personalizar la herramienta a nuestro
antojo
• Crear plantillas para aplicar en nuestros
proyectos
• Crear nuevos grupos
Instruments
• Grupos Custom nos permiten agrupar los
contadores como mejor se ajusten a nuestras
necesidades
• Demo
Instruments
• Las plantillas custom nos permiten agrupar
varios tipos de instruments bajo el mismo
documento y reutilizar para otros proyectos
• Demo
Instruments
• Captura de datos, podemos obtener de:
• All Processes
• Attach to Process
• Choose Target
Instruments
• Captura de datos, pueden ser:
• Simulador
• Dispositivo conectado
• Sin conectar, ideal para apps deportivas :-)
• Necesitamos configurar la WIFI con Bojour y
multicast -> ON en el AP
Instruments
• Modos:
• La captura de datos con Instruments aumenta
la carga y disminuye el rendimiento de la App
analizada
• Es posible usar Instruments de manera
alternativa: Deferred Mode (modo silencioso),
no vemos la interfaz de la herramienta pero
captura y genera un fichero con los datos
recopilados
Instruments
• Modos:
• Hay plantillas que directamente no usan UI
mientras capturan
• iprofiler
• $ iprofiler -timeprofiler -activitymonitor -T 10 -
d ~/temporales/
Instruments
!
• DEMOS
memory leaks
Memory leaks
• A veces nuestras Apps no liberan las
referencias de los objetos creados
• Con ARC este problema ha sido casi
erradicado…. pero no exterminado.
• Es posible encontrar memory leaks en
frameworks antiguos no ARC y sobre todo en
APIs C.
Memory leaks
• Instruments nos ofrece una plantilla llamada
Leaks, es usada siempre de manera conjunta
con Allocations
• Si la app tiene algún leak, nos muestra el
nombre de la clase del objeto que lo provoca o
el código responsable
Memory leaks
Core Animation
Core Animation
• Esta plantilla solo está disponible para capturar datos del
dispositivo
• Podemos medir y capturar la actividad de CA en nuestra
App. Los datos los devuelve en fps
• los contadores son:
• Color Blended Layers.
• Color Hits Green and Misses Red
• etc…
Core Animation
• También tenemos plantillas especificas para
OpenGL:
• Analizar el uso directo e indirecto de OpenGL
• Detectar posibles cuellos de botella en driver
de OpenGL
UI Testing
UI Testing
• Una de las funcionalidades más interesantes, el
desarrollo de Apps el peso de la UI es
importante.
• Hacer Testing de la UI puede ser tan sencillo
como usar tropas de testers “probando” o usar
una herramienta que simule una sesión de un
usuario y la ejecute las veces que sean
necesarias
UI Testing
• Con instruments tenemos una plantilla llamada
Automation
• Esta plantilla espera un script JS con la
secuencia de navegación
• Desde esta plantilla tenemos un editor que nos
permite capturar la navegación, traducirla a JS y
ejecutarla
UI Testing
• Para que esto funcione tenemos que tocar
nuestro código y establecer la propiedad
Accesibility a ON, además del accesibiltyLabel
de cada uno de los elementos que queremos
capturar
• Cada script es exclusivo de una App, no es
posible reutilizar
UI Testing
• var target = UIATarget.localTarget();
!
• target.frontMostApp().tabBar().buttons()["UITest"].tap();
• target.frontMostApp().mainWindow().buttons()["Boton1"].tap();
• target.frontMostApp().mainWindow().buttons()["Boton2"].tap();
• target.frontMostApp().tabBar().buttons()["Animation"].tap();
• target.tap({x:248.00, y:86.50});
• target.tap({x:55.50, y:480.50});
Stress Test Tool
UI Testing
for ( i =0; i <100; i++){
var target = UIATarget.localTarget();
target.frontMostApp().tabBar().buttons()["UITest"].tap();
target.frontMostApp().mainWindow().buttons()["Boton1"].tap();
target.frontMostApp().mainWindow().buttons()["Boton2"].tap();
target.frontMostApp().tabBar().buttons()["Animation"].tap();
target.tap({x:248.00, y:86.50});
target.tap({x:55.50, y:480.50});
}
Análisis de Rendimiento
Bottleneck, CPU, GCD…
Análisis de Rendimiento
• Tenemos varias plantillas que van desde una
visión general de los contadores más básicos
(CPU, Memoria) hasta la posibilidad de
establecer PMCs sobre algunos aspectos
específicos del hardware
Análisis de Rendimiento
• Básicos
• Time Profiler, nos proporciona info básica del
tipo tiempo de proceso, llamadas, etc…
• Activity Monitor
• System Trace: Es ejecutado en modo
silencioso con el objetivo de no “molestar”,
obtiene datos de Memoria (Allocations), CPU
Análisis de Rendimiento
• Un poco menos básicos
• Energia, GPS, Bluetooth
• Sampler, GCD, Connections
{“me”:
{“speaker”:“Juan A. Martin”,
“company”:“CloudOnMobile”,
“contact”: { "mail":"juan.antonio.martin@gmail.com”,
"twitter":"@byjuanamn",
"skype":"by-juanamn"
}
}
}
Muchas Gracias

Contenu connexe

En vedette (20)

Modulo 0
Modulo 0Modulo 0
Modulo 0
 
Comercializadora de joyas y accesorios
Comercializadora de joyas y accesoriosComercializadora de joyas y accesorios
Comercializadora de joyas y accesorios
 
jnnlClub de futbol cosmos cartas
jnnlClub de futbol cosmos cartasjnnlClub de futbol cosmos cartas
jnnlClub de futbol cosmos cartas
 
Tu Comuna Mira al Universo 2012
Tu Comuna Mira al Universo 2012Tu Comuna Mira al Universo 2012
Tu Comuna Mira al Universo 2012
 
Informe anual 2012
Informe anual 2012Informe anual 2012
Informe anual 2012
 
Bloqueii 111003182244-phpapp01
Bloqueii 111003182244-phpapp01Bloqueii 111003182244-phpapp01
Bloqueii 111003182244-phpapp01
 
Miproyecto de vida
Miproyecto de vidaMiproyecto de vida
Miproyecto de vida
 
Cambio climatico en tierralta
Cambio climatico en tierraltaCambio climatico en tierralta
Cambio climatico en tierralta
 
Tema 6 empleo en la Unión Europea
Tema 6 empleo en la Unión EuropeaTema 6 empleo en la Unión Europea
Tema 6 empleo en la Unión Europea
 
Comitè organizador
Comitè organizadorComitè organizador
Comitè organizador
 
Internet
InternetInternet
Internet
 
Aprendizaje colaborativo gisselle dávalos r.
Aprendizaje colaborativo gisselle dávalos r.Aprendizaje colaborativo gisselle dávalos r.
Aprendizaje colaborativo gisselle dávalos r.
 
Syllabus 350135101
Syllabus 350135101Syllabus 350135101
Syllabus 350135101
 
PUBLICACIÓN2_SLIDESHARE
PUBLICACIÓN2_SLIDESHAREPUBLICACIÓN2_SLIDESHARE
PUBLICACIÓN2_SLIDESHARE
 
Pitbull
PitbullPitbull
Pitbull
 
snayder
snaydersnayder
snayder
 
Precen bonita
Precen bonitaPrecen bonita
Precen bonita
 
el mejor arte
el mejor arteel mejor arte
el mejor arte
 
Diagnóstico violencia Pichincha julio 25 r-2014
Diagnóstico violencia Pichincha julio 25 r-2014Diagnóstico violencia Pichincha julio 25 r-2014
Diagnóstico violencia Pichincha julio 25 r-2014
 
Impresora l200
Impresora l200Impresora l200
Impresora l200
 

Similaire à Instruments 3 en 1

Ponencia Final Dispositivos Móviles
Ponencia Final Dispositivos Móviles Ponencia Final Dispositivos Móviles
Ponencia Final Dispositivos Móviles Adán Silva
 
Integración sistemasembebidosaplicacionesmóviles
Integración sistemasembebidosaplicacionesmóvilesIntegración sistemasembebidosaplicacionesmóviles
Integración sistemasembebidosaplicacionesmóvilesSBCTecnologias S.A. de C.V.
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaglfloresgilberto
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2Frank Jorge
 
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...Federico Toledo
 
Conceptos 2
Conceptos 2 Conceptos 2
Conceptos 2 fredur
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Androidjezabelink
 
Pract un4
Pract un4Pract un4
Pract un4Lenidav
 
Diapositivas Robotica!
Diapositivas Robotica!Diapositivas Robotica!
Diapositivas Robotica!Plan24
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Trabajando con acelerómetros en Android
Trabajando con acelerómetros en AndroidTrabajando con acelerómetros en Android
Trabajando con acelerómetros en Androidykro
 
Integración sistemasembebidosaplicacionesmóviles
Integración sistemasembebidosaplicacionesmóvilesIntegración sistemasembebidosaplicacionesmóviles
Integración sistemasembebidosaplicacionesmóvilesSBCTecnologias S.A. de C.V.
 

Similaire à Instruments 3 en 1 (20)

Presentacion cw2012
Presentacion cw2012Presentacion cw2012
Presentacion cw2012
 
Ponencia Final Dispositivos Móviles
Ponencia Final Dispositivos Móviles Ponencia Final Dispositivos Móviles
Ponencia Final Dispositivos Móviles
 
Seminario Jade 2014
Seminario Jade 2014Seminario Jade 2014
Seminario Jade 2014
 
AppIOS
AppIOSAppIOS
AppIOS
 
Integración sistemasembebidosaplicacionesmóviles
Integración sistemasembebidosaplicacionesmóvilesIntegración sistemasembebidosaplicacionesmóviles
Integración sistemasembebidosaplicacionesmóviles
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2
 
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
 
Conceptos 2
Conceptos 2 Conceptos 2
Conceptos 2
 
Sistema de computo
Sistema de computoSistema de computo
Sistema de computo
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Pract un4
Pract un4Pract un4
Pract un4
 
Diapositivas Robotica!
Diapositivas Robotica!Diapositivas Robotica!
Diapositivas Robotica!
 
APP INVENTOR 2
APP  INVENTOR 2APP  INVENTOR 2
APP INVENTOR 2
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Trabajando con acelerómetros en Android
Trabajando con acelerómetros en AndroidTrabajando con acelerómetros en Android
Trabajando con acelerómetros en Android
 
Cap5 ssoo-ft
Cap5 ssoo-ftCap5 ssoo-ft
Cap5 ssoo-ft
 
Sesion uno azuay
Sesion uno azuaySesion uno azuay
Sesion uno azuay
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Integración sistemasembebidosaplicacionesmóviles
Integración sistemasembebidosaplicacionesmóvilesIntegración sistemasembebidosaplicacionesmóviles
Integración sistemasembebidosaplicacionesmóviles
 

Plus de Juan Antonio Martin

Plus de Juan Antonio Martin (9)

Ios y azure apps como churros
Ios y azure apps como churrosIos y azure apps como churros
Ios y azure apps como churros
 
Piezas para construir un ecommerce para mobile
Piezas para construir un ecommerce para mobilePiezas para construir un ecommerce para mobile
Piezas para construir un ecommerce para mobile
 
Introducción a CloudKit
Introducción a CloudKitIntroducción a CloudKit
Introducción a CloudKit
 
Backend i os
Backend i osBackend i os
Backend i os
 
Bye bye jenkins welcome bots
Bye bye jenkins welcome botsBye bye jenkins welcome bots
Bye bye jenkins welcome bots
 
Parse intro
Parse introParse intro
Parse intro
 
Desmontando a Jenkins :-)
Desmontando a Jenkins :-)Desmontando a Jenkins :-)
Desmontando a Jenkins :-)
 
Google analytics sdk ios
Google analytics sdk iosGoogle analytics sdk ios
Google analytics sdk ios
 
Cloud en iOS: alternativas para desarrollar nuevas Apps
Cloud en iOS: alternativas para desarrollar nuevas AppsCloud en iOS: alternativas para desarrollar nuevas Apps
Cloud en iOS: alternativas para desarrollar nuevas Apps
 

Dernier

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Dernier (20)

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 

Instruments 3 en 1

  • 1. Instruments: el 3 en 1 de los desarrolladores Juan A. Martín
  • 2. Agenda • Intro • Algunos escenarios de uso: • Memoria • Gráficos • UI
  • 3. Intro • Las Apps son cada vez más complejas, expuestas a factores externos, integradas con otros complementos (soft, hard) • Necesitamos saber que sucede mientras nuestras Apps están siendo usadas • Necesitamos saber por qué no funcionan como esperábamos
  • 4. Intro • Podemos conocer que sucede en nuestra App a través de dos herramientas: • Gauges • Instruments
  • 5. Intro • Gauges: integrado en el propio Xcode, nos proporciona información básica de CPU y memoria mientras depuramos • Info básica pero muy util, p.e. si usamos colas y les ponemos nombre podemos ver la actividad del Thread a simple vista
  • 6.
  • 7. Intro • Cuando Gauges no cubre nuestras necesidades tenemos Instruments • Instruments es una herramienta complementaria a Xcode, está incluida en el entorno.
  • 8. Instruments • Instruments es una herramienta complementaria a Xcode, está incluida en el entorno. • Con Instruments podemos: • Examinar el comportamiento de uno o varios procesos • Hacer un análisis de rendimiento • Automatizar test de UI • Someter nuestras Apps a Stress • …
  • 9. Instruments • Visión rápida de Instruments (ver instruments)
  • 10.
  • 11. Instruments • Requisitos: podemos utilizar la herramienta sobre los dispositivos o el simulador, en función al tipo de plantilla que usemos será necesario añadir alguna variable de entorno o setting de el dispositivo. • Limitaciones: No siempre podemos aplicar las plantillas sobre los dispositivos (p.e. Core Data)
  • 13. Instruments • Podemos personalizar la herramienta a nuestro antojo • Crear plantillas para aplicar en nuestros proyectos • Crear nuevos grupos
  • 14. Instruments • Grupos Custom nos permiten agrupar los contadores como mejor se ajusten a nuestras necesidades • Demo
  • 15. Instruments • Las plantillas custom nos permiten agrupar varios tipos de instruments bajo el mismo documento y reutilizar para otros proyectos • Demo
  • 16. Instruments • Captura de datos, podemos obtener de: • All Processes • Attach to Process • Choose Target
  • 17. Instruments • Captura de datos, pueden ser: • Simulador • Dispositivo conectado • Sin conectar, ideal para apps deportivas :-) • Necesitamos configurar la WIFI con Bojour y multicast -> ON en el AP
  • 18. Instruments • Modos: • La captura de datos con Instruments aumenta la carga y disminuye el rendimiento de la App analizada • Es posible usar Instruments de manera alternativa: Deferred Mode (modo silencioso), no vemos la interfaz de la herramienta pero captura y genera un fichero con los datos recopilados
  • 19. Instruments • Modos: • Hay plantillas que directamente no usan UI mientras capturan • iprofiler • $ iprofiler -timeprofiler -activitymonitor -T 10 - d ~/temporales/
  • 21.
  • 23. Memory leaks • A veces nuestras Apps no liberan las referencias de los objetos creados • Con ARC este problema ha sido casi erradicado…. pero no exterminado. • Es posible encontrar memory leaks en frameworks antiguos no ARC y sobre todo en APIs C.
  • 24. Memory leaks • Instruments nos ofrece una plantilla llamada Leaks, es usada siempre de manera conjunta con Allocations • Si la app tiene algún leak, nos muestra el nombre de la clase del objeto que lo provoca o el código responsable
  • 27. Core Animation • Esta plantilla solo está disponible para capturar datos del dispositivo • Podemos medir y capturar la actividad de CA en nuestra App. Los datos los devuelve en fps • los contadores son: • Color Blended Layers. • Color Hits Green and Misses Red • etc…
  • 28. Core Animation • También tenemos plantillas especificas para OpenGL: • Analizar el uso directo e indirecto de OpenGL • Detectar posibles cuellos de botella en driver de OpenGL
  • 30. UI Testing • Una de las funcionalidades más interesantes, el desarrollo de Apps el peso de la UI es importante. • Hacer Testing de la UI puede ser tan sencillo como usar tropas de testers “probando” o usar una herramienta que simule una sesión de un usuario y la ejecute las veces que sean necesarias
  • 31. UI Testing • Con instruments tenemos una plantilla llamada Automation • Esta plantilla espera un script JS con la secuencia de navegación • Desde esta plantilla tenemos un editor que nos permite capturar la navegación, traducirla a JS y ejecutarla
  • 32. UI Testing • Para que esto funcione tenemos que tocar nuestro código y establecer la propiedad Accesibility a ON, además del accesibiltyLabel de cada uno de los elementos que queremos capturar • Cada script es exclusivo de una App, no es posible reutilizar
  • 33. UI Testing • var target = UIATarget.localTarget(); ! • target.frontMostApp().tabBar().buttons()["UITest"].tap(); • target.frontMostApp().mainWindow().buttons()["Boton1"].tap(); • target.frontMostApp().mainWindow().buttons()["Boton2"].tap(); • target.frontMostApp().tabBar().buttons()["Animation"].tap(); • target.tap({x:248.00, y:86.50}); • target.tap({x:55.50, y:480.50});
  • 35. UI Testing for ( i =0; i <100; i++){ var target = UIATarget.localTarget(); target.frontMostApp().tabBar().buttons()["UITest"].tap(); target.frontMostApp().mainWindow().buttons()["Boton1"].tap(); target.frontMostApp().mainWindow().buttons()["Boton2"].tap(); target.frontMostApp().tabBar().buttons()["Animation"].tap(); target.tap({x:248.00, y:86.50}); target.tap({x:55.50, y:480.50}); }
  • 37. Análisis de Rendimiento • Tenemos varias plantillas que van desde una visión general de los contadores más básicos (CPU, Memoria) hasta la posibilidad de establecer PMCs sobre algunos aspectos específicos del hardware
  • 38. Análisis de Rendimiento • Básicos • Time Profiler, nos proporciona info básica del tipo tiempo de proceso, llamadas, etc… • Activity Monitor • System Trace: Es ejecutado en modo silencioso con el objetivo de no “molestar”, obtiene datos de Memoria (Allocations), CPU
  • 39. Análisis de Rendimiento • Un poco menos básicos • Energia, GPS, Bluetooth • Sampler, GCD, Connections
  • 40. {“me”: {“speaker”:“Juan A. Martin”, “company”:“CloudOnMobile”, “contact”: { "mail":"juan.antonio.martin@gmail.com”, "twitter":"@byjuanamn", "skype":"by-juanamn" } } } Muchas Gracias