Perfilador

A partir de la versión 3.2.0 (beta).

La pestaña Perfilador mide el tiempo que tarda la evaluación de las fórmulas. Registra cada evaluación y la muestra en una cronología y en una tabla: duraciones, número de llamadas, cadenas de llamadas. Ve en qué se va el tiempo, incluso en las llamadas que lanza el propio Ninext.

La pestaña está reservada a los administradores. Solo muestra su icono, un cronómetro, entre las pestañas Errores y Buscador de código; su nombre aparece al pasar el ratón. Se desactiva en la Configuración de Ninext, sección «Gestor de scripts»: Perfilador de fórmulas.

Iniciar y detener una medición

El botón principal, Iniciar la medición, toma el nombre del inicio elegido (Iniciar en la primera evaluación, Iniciar en el próximo clic); durante la medición, se convierte en Detener la medición. El pequeño botón contiguo, que muestra los iconos del inicio y de la parada elegidos, abre el menú Elegir el disparador de inicio, en dos partes. La primera indica cuándo empieza la medición:

InicioEfecto
Inicio inmediatoLa medición empieza con el clic. Es el ajuste predeterminado.
En la primera evaluaciónLa medición empieza con la próxima evaluación de fórmula, que sirve de origen de los tiempos.
En el próximo clicLa medición empieza con el próximo clic fuera de la pestaña Perfilador. Mientras tanto, el botón se convierte en Cancelar.

La segunda indica cuándo se detiene:

ParadaEfecto
Parada manualCon el botón Detener la medición. Es el ajuste predeterminado.
Parar tras 10, 30 o 60 sLa cuenta atrás empieza al iniciarse la medición.
Al terminar la evaluaciónSe ofrece con «En la primera evaluación»: la medición se detiene cuando termina esa evaluación, incluida su continuación asíncrona.
Al soltar el botón del ratónSe ofrece con «En el próximo clic»: la medición se detiene al soltar el botón del ratón. Lo que continúa después de forma asíncrona no se mide.

Así solo mide lo que le interesa: la apertura de un registro, el clic en un botón, el cálculo de una vista. Estas elecciones valen hasta que se recarga la página.

Mientras la medición espera su disparador, la línea de estado indica «Armado — a la espera del disparador…». Durante la medición, indica desde hace cuántos segundos está en curso, el número de evaluaciones registradas y el número de fórmulas distintas.

A tener en cuenta

Iniciar una nueva medición no vacía los resultados anteriores: las evaluaciones se acumulan de una medición a otra, en la tabla, en los contadores y en la cronología, hasta el clic en Vaciar. Cada medición vuelve a empezar de cero en el eje de tiempo: por tanto, las barras de dos mediciones sucesivas se superponen al principio de la cronología. Para leer una medición sola, haga clic en Vaciar antes de iniciarla.

Cronología

Cada evaluación es una barra en un eje de tiempo. Las evaluaciones anidadas o simultáneas se apilan en varias líneas; cada fórmula conserva su color, y una barra translúcida es una evaluación todavía en curso. Las barras suficientemente anchas llevan el nombre de su campo («Tabla ▸ Campo»), precedido de «Ninext ▸» para las llamadas del plugin. La vista se llena en directo. Conserva como máximo 20 000 evaluaciones: más allá, una nota indica el número de evaluaciones descartadas, que solo la tabla sigue contando.

Para hacer zoom:

  • la rueda del ratón, o el gesto de pellizcar en el panel táctil en Chrome, hace zoom bajo el puntero (el deslizamiento con dos dedos desplaza la vista);
  • un doble clic en una barra la selecciona y hace zoom sobre ella;
  • tres botones: Ajustar toda la sesión, Reducir la escala de tiempo y Ampliar la escala de tiempo.

Tabla

Vista Tabla del Perfilador

La tabla agrupa las evaluaciones por fórmula:

ColumnaContenido
FórmulaLa fórmula medida.
LlamadasEl número de evaluaciones.
Total (ms)El tiempo acumulado.
Media (ms)El tiempo medio de una evaluación.
Máx (ms)La evaluación más larga.

Está ordenada por tiempo total, de la más costosa a la menos costosa, y se actualiza cada segundo; se muestran las 100 primeras líneas, y una nota lo indica más allá («100 filas mostradas de N — las más costosas primero»). Más allá de 1 000 fórmulas distintas, las siguientes se agrupan en una línea «… otras fórmulas». Una fórmula del esquema se presenta como en Campos y fórmulas —ruta de navegación, «Fx», botón de modificación—, con un «+N» cuando la misma fórmula se encuentra en varios lugares. Una etiqueta «Ninext» marca las llamadas lanzadas por el plugin.

El detalle de una evaluación

Detalle de una evaluación en el Perfilador

Un clic en una barra o en una línea abre el detalle:

  • el código completo de la fórmula;
  • para una barra: Inicio, Duración, Registro, y la Cadena de llamadas, desde la evaluación raíz hasta esta, con cada eslabón clicable; para una línea de la tabla: Mediciones (número de llamadas, tiempo total, medio y máximo);
  • Origen, para una llamada lanzada por Ninext;
  • Variables (inspección), para una evaluación de una fórmula inspeccionada (véase más abajo);
  • las Ubicaciones de la fórmula en el esquema, con el botón que lleva al código;
  • al pie, Ampliar esta evaluación e Inspeccionar esta fórmula.

Inspeccionar una fórmula

Seleccione una fórmula, en la tabla o en la cronología, y haga clic en Inspeccionar esta fórmula. Durante la medición, en cada evaluación de esa fórmula, el perfilador registra el valor de cada variable declarada con var o let: una vista previa del valor, y su tipo al pasar el ratón.

La pestaña Inspeccionar enumera esas evaluaciones, la más reciente arriba; un clic en una de ellas la localiza en la cronología. Se inspecciona una fórmula cada vez; Detener la inspección pone fin a la inspección.

Dos límites: las reasignaciones y las variables de bucle no se registran, y los tiempos de la fórmula inspeccionada pasan a ser orientativos, ya que el propio registro lleva tiempo.

Leer las cifras

  • Los tiempos son inclusivos: una fórmula cuenta también el tiempo de las fórmulas que evalúa.
  • Para una evaluación asíncrona, el tiempo corre hasta su final, incluida la carga de los datos.
  • Dos campos que llevan exactamente la misma fórmula comparten una línea de la tabla.
  • Se miden las fórmulas, los triggers, las columnas de las vistas, el código de la Consola y las llamadas de Ninext. El JavaScript propio de Ninext, no.
  • La medición solo cuesta unos microsegundos por evaluación, y nada fuera de una medición. Los resultados se quedan en memoria: desaparecen al recargar la página.