Profilatore

A partire dalla versione 3.2.0 (beta).

La scheda Profilatore misura il tempo impiegato dalla valutazione delle formule. Registra ogni valutazione e la mostra in cronologia e in tabella: durate, numero di chiamate, catene di chiamate. Vedete dove se ne va il tempo — comprese le chiamate che Ninext stesso avvia.

La scheda è riservata agli amministratori. Mostra solo la sua icona, un cronometro, tra le schede Errori e Ricerca codice; il nome compare al passaggio del mouse. Si disattiva nelle Impostazioni Ninext, sezione «Gestore script»: Profilatore di formule.

Avviare e fermare una misura

Il pulsante principale, Avvia la misura, prende il nome dell'avvio scelto (Avvia alla prima valutazione, Avvia al prossimo clic); durante la misura, diventa Ferma la misura. Il piccolo pulsante accanto, che mostra le icone dell'avvio e dell'arresto scelti, apre il menu Scegli l'attivatore di avvio, in due parti. La prima dice quando inizia la misura:

AvvioEffetto
Avvio immediatoLa misura inizia al clic. È l'impostazione predefinita.
Alla prima valutazioneLa misura inizia con la prossima valutazione di formula, che fa da origine dei tempi.
Al prossimo clicLa misura inizia al prossimo clic fuori dalla scheda Profilatore. Nell'attesa, il pulsante diventa Annulla.

La seconda dice quando si ferma:

ArrestoEffetto
Arresto manualeCon il pulsante Ferma la misura. È l'impostazione predefinita.
Arresto dopo 10, 30 o 60 sIl conto alla rovescia parte dall'avvio della misura.
Alla fine della valutazioneProposto con «Alla prima valutazione»: la misura si ferma quando quella valutazione termina, seguito asincrono compreso.
Al rilascio del pulsante del mouseProposto con «Al prossimo clic»: la misura si ferma al rilascio del pulsante del mouse. Ciò che prosegue in seguito in modo asincrono non viene misurato.

Misurate così solo ciò che vi interessa: l'apertura di un record, il clic su un pulsante, il calcolo di una vista. Queste scelte valgono fino al ricaricamento della pagina.

Finché la misura attende il suo attivatore, la riga di stato indica «Armato — in attesa dell'attivatore…». Durante la misura, indica da quanti secondi è in corso, il numero di valutazioni rilevate e il numero di formule distinte.

Da sapere

Avviare una nuova misura non svuota i risultati precedenti: le valutazioni si sommano da una misura all'altra, nella tabella, nei contatori e nella cronologia, fino al clic su Svuota. Ogni misura riparte da zero sull'asse dei tempi: le barre di due misure successive si sovrappongono quindi all'inizio della cronologia. Per leggere una misura da sola, fate clic su Svuota prima di avviarla.

Cronologia

Ogni valutazione è una barra su un asse temporale. Le valutazioni annidate o simultanee si impilano su più righe; ogni formula conserva il suo colore, e una barra traslucida è una valutazione ancora in corso. Le barre abbastanza larghe riportano il nome del loro campo («Tabella ▸ Campo»), preceduto da «Ninext ▸» per le chiamate del plugin. La vista si riempie in diretta. Conserva al massimo 20.000 valutazioni: oltre, una nota indica il numero di valutazioni scartate, che solo la tabella conta ancora.

Per lo zoom:

  • la rotellina del mouse, o il pizzico con due dita sul trackpad in Chrome, esegue lo zoom sotto il puntatore (lo scorrimento con due dita fa scorrere la vista);
  • un doppio clic su una barra la seleziona ed esegue lo zoom su di essa;
  • tre pulsanti: Adatta l'intera sessione, Riduci la scala temporale e Ingrandisci la scala temporale.

Tabella

Vista Tabella del Profilatore

La tabella raggruppa le valutazioni per formula:

ColonnaContenuto
FormulaLa formula misurata.
ChiamateIl numero di valutazioni.
Totale (ms)Il tempo cumulato.
Media (ms)Il tempo medio di una valutazione.
Max (ms)La valutazione più lunga.

È ordinata per tempo totale, dalla più costosa alla meno costosa, e si aggiorna ogni secondo; vengono mostrate le prime 100 righe, e una nota lo segnala oltre questo numero («100 righe mostrate su N — le più costose prima»). Oltre 1.000 formule distinte, le successive sono raggruppate in una riga «… altre formule». Una formula dello schema si presenta come in Campi & Formule — filo di Arianna, «Fx», pulsante di modifica — con un «+N» quando la stessa formula si trova in più punti. Un badge «Ninext» contrassegna le chiamate avviate dal plugin.

Il dettaglio di una valutazione

Dettaglio di una valutazione nel Profilatore

Un clic su una barra o su una riga apre il dettaglio:

  • il codice completo della formula;
  • per una barra: Inizio, Durata, Record e la Catena di chiamate, dalla valutazione radice fino a questa, con ogni anello cliccabile; per una riga della tabella: Misurazioni (numero di chiamate, tempo totale, medio e massimo);
  • Origine, per una chiamata avviata da Ninext;
  • Variabili (ispezione), per una valutazione di una formula ispezionata (vedere più avanti);
  • le Posizioni della formula nello schema, con il pulsante che porta al codice;
  • in fondo, Zoom su questa valutazione e Ispeziona questa formula.

Ispezionare una formula

Selezionate una formula, nella tabella o nella cronologia, poi fate clic su Ispeziona questa formula. Durante la misura, a ogni valutazione di questa formula, il profilatore rileva il valore di ogni variabile dichiarata con var o let: un'anteprima del valore, e il suo tipo al passaggio del mouse.

La scheda Ispeziona elenca queste valutazioni, la più recente in alto; un clic su una di esse la ritrova nella cronologia. Si ispeziona una formula alla volta; Interrompi l'ispezione vi pone fine.

Due limiti: le riassegnazioni e le variabili di ciclo non vengono rilevate, e i tempi della formula ispezionata diventano indicativi, poiché il rilevamento stesso richiede tempo.

Leggere i numeri

  • I tempi sono inclusivi: una formula conta anche il tempo delle formule che valuta.
  • Per una valutazione asincrona, il tempo scorre fino alla sua conclusione, caricamento dei dati compreso.
  • Due campi che contengono esattamente la stessa formula condividono una riga della tabella.
  • Vengono misurati le formule, i trigger, le colonne delle viste, il codice della Console e le chiamate di Ninext. Il JavaScript proprio di Ninext non lo è.
  • La misura costa solo pochi microsecondi per valutazione, e nulla al di fuori di una misura. I risultati restano in memoria: scompaiono al ricaricamento della pagina.