Profiler
From version 3.2.0 (beta) onwards.
The Profiler tab measures how long formulas take to evaluate. It records each evaluation and shows it as a timeline and as a table: durations, number of calls, call chains. You see where the time goes — including in the calls that Ninext triggers itself.
The tab is reserved for administrators. It only shows its icon, a stopwatch, between the Errors and Code Finder tabs; its name appears on hover. It can be switched off in the Ninext Settings, "Script Manager" section: Formula profiler.
Starting and stopping a measurement
The main button, Start measuring, takes the name of the chosen start (Start on first evaluation, Start on next click); during the measurement, it becomes Stop measuring. The small button next to it, which shows the icons of the chosen start and stop, opens the Choose the start trigger menu, in two parts. The first says when the measurement starts:
| Start | Effect |
|---|---|
| Start immediately | The measurement starts on the click. This is the default setting. |
| On first evaluation | The measurement starts with the next formula evaluation, which serves as the time origin. |
| On next click | The measurement starts at the next click outside the Profiler tab. Meanwhile, the button becomes Cancel. |
The second says when it stops:
| Stop | Effect |
|---|---|
| Manual stop | With the Stop measuring button. This is the default setting. |
| Stop after 10, 30 or 60 s | The countdown starts when the measurement starts. |
| When the evaluation ends | Offered with "On first evaluation": the measurement stops when that evaluation ends, asynchronous continuation included. |
| On mouse-button release | Offered with "On next click": the measurement stops when you release the mouse button. What then continues asynchronously is not measured. |
This way, you only measure what interests you: opening a record, clicking a button, computing a view. These choices apply until the page is reloaded.
As long as the measurement is waiting for its trigger, the status line shows "Armed — waiting for the trigger…". During the measurement, it shows for how many seconds it has been running, the number of evaluations recorded and the number of distinct formulas.
Good to know
Starting a new measurement does not clear the previous results: evaluations add up from one measurement to the next, in the table, in the counters and in the timeline, until you click Clear. Each measurement starts from zero on the time axis: the bars of two successive measurements therefore overlap at the beginning of the timeline. To read a measurement on its own, click Clear before starting it.
Timeline
Each evaluation is a bar on a time axis. Nested or simultaneous evaluations stack up on several rows; each formula keeps its color, and a translucent bar is an evaluation still in progress. Bars that are wide enough carry the name of their field ("Table ▸ Field"), preceded by "Ninext ▸" for the plugin's calls. The view fills in live. It keeps at most 20,000 evaluations: beyond that, a note gives the number of evaluations left out, which only the table still counts.
To zoom:
- the mouse wheel, or pinching on the trackpad in Chrome, zooms under the pointer (a two-finger swipe scrolls);
- a double-click on a bar selects it and zooms on it;
- three buttons: Fit the whole session, Zoom out (time scale) and Zoom in (time scale).
Table

The table groups evaluations by formula:
| Column | Content |
|---|---|
| Formula | The formula measured. |
| Calls | The number of evaluations. |
| Total (ms) | The cumulative time. |
| Average (ms) | The average time of an evaluation. |
| Max (ms) | The longest evaluation. |
It is sorted by total time, from the most expensive to the least expensive, and updates every second; the first 100 rows are displayed, and a note says so beyond that ("100 rows shown out of N — most expensive first"). Beyond 1,000 distinct formulas, the following ones are grouped on a "… other formulas" row. A schema formula is presented as in Fields & Formulas — breadcrumb, "Fx", edit button — with a "+N" when the same formula is found in several places. A "Ninext" badge marks the calls launched by the plugin.
The details of an evaluation

A click on a bar or on a row opens the details:
- the full code of the formula;
- for a bar: Start, Duration, Record, and the Call chain, from the root evaluation down to this one, each link being clickable; for a row of the table: Measurements (number of calls, total, average and maximum time);
- Origin, for a call launched by Ninext;
- Variables (inspection), for an evaluation of an inspected formula (see below);
- the Locations of the formula in the schema, with the button that leads to the code;
- at the bottom, Zoom to this evaluation and Inspect this formula.
Inspecting a formula
Select a formula, in the table or in the timeline, then click Inspect this formula. During the measurement, at each evaluation of this formula, the profiler records the value of every variable declared with var or let: a preview of the value, and its type on hover.
The Inspect tab lists these evaluations, the most recent at the top; a click on one of them finds it in the timeline. You inspect one formula at a time; Stop inspecting ends it.
Two limits: reassignments and loop variables are not recorded, and the times of the inspected formula become indicative only, since the recording itself takes time.
Reading the figures
- Times are inclusive: a formula also counts the time of the formulas it evaluates.
- For an asynchronous evaluation, the time runs until it completes, data loading included.
- Two fields that carry exactly the same formula share one row of the table.
- Formulas, triggers, view columns, Console code and Ninext's calls are measured. Ninext's own JavaScript is not.
- Measuring only costs a few microseconds per evaluation, and nothing outside a measurement. The results stay in memory: they disappear when the page is reloaded.
