-
Title:
Funcionamiento de cálculos
-
Description:
-
El segundo de nuestros 3 pilares será
-
el funcionamiento de cálculos. Y para
darles una idea de cómo su aplicación
-
está realmente usando el tiempo durante
un fotograma, lo que realmente quieres
-
es revisar la pestaña de cronología dentro de
las herramientas del programador Chrome.
-
Cómo funciona, es cargando en
la cronología, pulsa este precioso
-
botón de grabación aquí abajo y
mira el mágico despliegue.
-
Vamos a echar un vistazo a ver
cómo te desenvuelves con
-
Bioland Disaster. Si empiezo el juego,
aumenta muy fácilmente.
-
Cuando presiono el botón de grabación aquí abajo,
-
puedes observar que está registrando toda la información
de los eventos que se están llevando a cabo
-
mientras el juego está en funcionamiento. Ahora
no estoy haciendo nada, quiero destacar
-
que sin embargo, los eventos están
lanzándose en realidad.
-
Así que vamos a ver que está pasando
realmente en su rendimiento.
-
Si aumento esto, puedo ver el número de
eventos dentro de mi ventana
-
y profundizar sobre qué esta pasando.
Esto es un cuadro de animación.
-
Si expando esto, puedes ver que hay una
petición de encuadre de animación
-
que se ha producido en este punto.
-
Podrás observar que en la parte inferior aquí
-
hay diferentes tipos de casillas para filtrar
-
qué eventos estás observando.
-
Cada uno tiene su respectivo color.
Por ejemplo, cargar
-
es azul, encriptar dorado, la representación
morada y pintar es verde.
-
Si altero la pintura
-
puedes ver que estos eventos
desaparecen de la cronología.
-
He hecho una pequeña captura
mientras no estabas mirando,
-
te he visto ir a por cacahuetes de la bolsa.
-
Si deslizo la visibilidad de mi ventana a
otra parte de la cronología,
-
puedes observar que hay un pequeño
bloque aquí que parece ser
-
más ancho que los demás bloques que lo rodean,
-
lo que esto implica es que hay una especie de encriptamiento entre nuestras ventanas aquí
-
que está llevando más tiempo que a los
demás cuadros. Debajo de nosotros
-
tenemos una lista de eventos que han ocurrido,
además como recordarán
-
estos pequeños triángulos que nos
permiten profundizar en el evento.
-
Aquí al lado, puedes ver que
-
tenemos la misma animación "Frame Fire" que
hemos visto antes, pero
-
la nueva que se nos muestra es un "GC Event",
-
donde se recolectan 1,4 megabytes de datos.
-
Filtrándose se muestra un diálogo
desplegable que lleva
-
2,7 milisegundos, fuera de nuestra
capacidad de cuadro para hacer
-
un evento de recogida de basura. Esa es la razón
por la que puede ver que este bloque aquí
-
es más grande que el bloque
al lado de este, porque
-
tenemos 2,7 milisegundos extra que hacen
-
un evento de recogido de basura.
Podemos verlo reflejado,
-
clicando en la opción de memoria sobre la cronología.
-
Lo que nos va a mostrar ahora
esta es un gráfico linear
-
donde se están llevando a cabo las
asignaciones, y para su sorpresa,
-
puedes ver entre nuestros 2 divets aquí,
que cuando ocurre este evento GC
-
la cantidad de memoria asignada
en nuestra aplicación cae,
-
mostrándonos que la recolección
de basura libera memoria.
-
Ahora quiero mostraros como funciona en
directo. Es muy interesante de ver.
-
Cómo una aplicación, realmente asigna su memoria.
-
Puedes ver con el tiempo, que cuando
no hago nada en la pantalla,
-
están asignados alrededor de 1 megabyte
por segundo más o menos.
-
Y después puedes ver que el recolector
de basura decrece y libera
-
muchos datos. Este tipo de patrón de dientes de sierra
-
que estás viendo a lo largo de la
cronología aquí, es muy común
-
en diferentes aplicaciones web, esto hace que
la asignación de objetos sea más dinámica.
-
Hay un artículo que escribí en HTML 5 Rocks que
detalla las diferentes formas
-
para abordar este tipo de patrón de
dientes de sierra, utilizando
-
agrupaciones de objetos. Pero
no vamos a tratar eso ahora.
-
Vamos a centrarnos en lo que tenemos enfrente.