Profilage
À partir de la version 3.2.0 (bêta).
L'onglet Profilage mesure le temps que prend l'évaluation des formules. Il enregistre chaque évaluation et l'affiche en chronologie et en tableau : durées, nombre d'appels, chaînes d'appels. Vous voyez où passe le temps — y compris dans les appels que Ninext déclenche lui-même.
L'onglet est réservé aux administrateurs. Il n'affiche que son icône, un chronomètre, entre les onglets Erreurs et Recherche de code ; son nom apparaît au survol. Il se désactive dans les Paramètres Ninext, section « Gestionnaire de scripts » : Profilage des formules.
Démarrer et arrêter une mesure
Le bouton principal, Démarrer la mesure, prend le nom du démarrage choisi (Démarrer à la première évaluation, Démarrer au prochain clic) ; pendant la mesure, il devient Arrêter la mesure. Le petit bouton voisin, qui montre les icônes du démarrage et de l'arrêt choisis, ouvre le menu Choisir le déclencheur de démarrage, en deux parties. La première dit quand la mesure commence :
| Démarrage | Effet |
|---|---|
| Démarrage immédiat | La mesure commence au clic. C'est le réglage par défaut. |
| À la première évaluation | La mesure commence avec la prochaine évaluation de formule, qui sert d'origine des temps. |
| Au prochain clic | La mesure commence au prochain clic hors de l'onglet Profilage. En attendant, le bouton devient Annuler. |
La seconde dit quand elle s'arrête :
| Arrêt | Effet |
|---|---|
| Arrêt manuel | Par le bouton Arrêter la mesure. C'est le réglage par défaut. |
| Arrêt après 10, 30 ou 60 s | Le compte à rebours part du démarrage de la mesure. |
| À la fin de l'évaluation | Proposé avec « À la première évaluation » : la mesure s'arrête quand cette évaluation se termine, suite asynchrone comprise. |
| Au relâchement du clic | Proposé avec « Au prochain clic » : la mesure s'arrête au relâchement du bouton de la souris. Ce qui se poursuit ensuite de façon asynchrone n'est pas mesuré. |
Vous ne mesurez ainsi que ce qui vous intéresse : l'ouverture d'une fiche, le clic sur un bouton, le calcul d'une vue. Ces choix valent jusqu'au rechargement de la page.
Tant que la mesure attend son déclencheur, la ligne d'état indique « Armé — en attente du déclencheur… ». Pendant la mesure, elle indique depuis combien de secondes elle tourne, le nombre d'évaluations relevées et le nombre de formules distinctes.
À savoir
Démarrer une nouvelle mesure ne vide pas les résultats précédents : les évaluations s'additionnent d'une mesure à l'autre, dans le tableau, dans les compteurs et dans la chronologie, jusqu'au clic sur Vider. Chaque mesure repart de zéro sur l'axe des temps : les barres de deux mesures successives se superposent donc au début de la chronologie. Pour lire une mesure seule, cliquez sur Vider avant de la démarrer.
Chronologie
Chaque évaluation est une barre sur un axe de temps. Les évaluations imbriquées ou simultanées s'empilent sur plusieurs lignes ; chaque formule garde sa couleur, et une barre translucide est une évaluation encore en cours. Les barres assez larges portent le nom de leur champ (« Table ▸ Champ »), précédé de « Ninext ▸ » pour les appels du plugin. La vue se remplit en direct. Elle garde au plus 20 000 évaluations : au-delà, une note donne le nombre d'évaluations écartées, que seul le tableau compte encore.
Pour zoomer :
- la molette de la souris, ou le pincement du pavé tactile dans Chrome, zoome sous le pointeur (le glissement à deux doigts fait défiler) ;
- un double-clic sur une barre la sélectionne et zoome dessus ;
- trois boutons : Zoom englobant (toute la session), Réduire l'échelle de temps et Agrandir l'échelle de temps.
Tableau

Le tableau regroupe les évaluations par formule :
| Colonne | Contenu |
|---|---|
| Formule | La formule mesurée. |
| Appels | Le nombre d'évaluations. |
| Total (ms) | Le temps cumulé. |
| Moyenne (ms) | Le temps moyen d'une évaluation. |
| Max (ms) | L'évaluation la plus longue. |
Il est trié par temps total, du plus coûteux au moins coûteux, et se met à jour chaque seconde ; les 100 premières lignes sont affichées, et une note le signale au-delà (« 100 lignes affichées sur N — les plus coûteuses d'abord »). Au-delà de 1 000 formules distinctes, les suivantes sont regroupées sur une ligne « … autres formules ». Une formule du schéma se présente comme dans Champs & Formules — fil d'Ariane, « Fx », bouton de modification —, avec un « +N » quand la même formule se trouve à plusieurs endroits. Une pastille « Ninext » marque les appels lancés par le plugin.
Le détail d'une évaluation

Un clic sur une barre ou sur une ligne ouvre le détail :
- le code complet de la formule ;
- pour une barre : Début, Durée, Enregistrement, et la Chaîne d'appels, de l'évaluation racine jusqu'à celle-ci, chaque maillon étant cliquable ; pour une ligne du tableau : Mesures (nombre d'appels, temps total, moyen et maximal) ;
- Origine, pour un appel lancé par Ninext ;
- Variables (inspection), pour une évaluation d'une formule inspectée (voir plus bas) ;
- les Emplacements de la formule dans le schéma, avec le bouton qui mène au code ;
- en pied, Zoomer sur cette évaluation et Inspecter cette formule.
Inspecter une formule
Sélectionnez une formule, dans le tableau ou dans la chronologie, puis cliquez sur Inspecter cette formule. Pendant la mesure, à chaque évaluation de cette formule, le profileur relève la valeur de chaque variable déclarée par var ou let : un aperçu de la valeur, et son type au survol.
L'onglet Inspecter liste ces évaluations, la plus récente en haut ; un clic sur l'une d'elles la retrouve dans la chronologie. On inspecte une formule à la fois ; Arrêter l'inspection y met fin.
Deux limites : les réaffectations et les variables de boucle ne sont pas relevées, et les temps de la formule inspectée deviennent indicatifs, puisque le relevé lui-même prend du temps.
Lire les chiffres
- Les temps sont inclusifs : une formule compte aussi le temps des formules qu'elle évalue.
- Pour une évaluation asynchrone, le temps court jusqu'à son terme, chargement des données compris.
- Deux champs qui portent exactement la même formule partagent une ligne du tableau.
- Sont mesurés les formules, les déclencheurs, les colonnes des vues, le code de la Console et les appels de Ninext. Le JavaScript propre de Ninext ne l'est pas.
- La mesure ne coûte que quelques microsecondes par évaluation, et rien en dehors d'une mesure. Les résultats restent en mémoire : ils disparaissent au rechargement de la page.
