What's new ⬇ Download Reportworq
⬇ Guide PDF

Review a run's performance#

Every run measures itself: how long it took, how much memory and CPU it used, and which formula families and calculation services accounted for the time. Nothing has to be turned on, and no setting controls it. Four places read that measurement, and this page covers the first two:

When to use it. When a pack that used to finish in three minutes now takes twenty, when you need to know which workbook in a large burst is the expensive one, or when you suspect a formula is being recalculated far more often than it needs to be. Also for capacity planning: peak memory and maximum CPU per run tell you what an execution host has to hold.

Before you start#

Compare a run against its own history#

The run list carries three performance columns.

Column What it shows
Elapsed vs baseline How long the run took, with a change indicator beside it. The indicator's tooltip names the comparison, for example a baseline of 3m 40s taken as the median of the previous 12 comparable runs.
Trend A small chart of the job's recent elapsed times with the baseline drawn in, so a step change reads as a shape rather than as a number. A run with no telemetry breaks the line instead of dropping it to zero.
Peak mem The highest working set the run reached, in MB or GB.
The Run History list showing the Elapsed vs baseline, Trend, and Peak mem columns
The Run History list showing the Elapsed vs baseline, Trend, and Peak mem columnsTap or click the image to view it full screen

Five rules govern the comparison, and they explain why a delta is sometimes absent:

Below the list, a note states how many runs recorded no telemetry and how many are held out of the baseline. A column full of dashes therefore reads as missing history rather than as a broken screen.

Two different elapsed figures. Where telemetry exists, the elapsed time is measured from execution start. Where it does not, the column falls back to the wall-clock duration on the run record, and the value's tooltip says which one you are looking at. The two are never mixed inside one trend.

Open the Performance tab for one run#

  1. In Run History, select the run you want to inspect. It opens on its Details tab.
  2. Select Performance. The tab is present on every run, alongside Details, Progress, Timeline and Compare.
The Performance tab of a run's diagnostics, with the verdict line, the six figures, the composition list, and the engine table
The Performance tab of a run's diagnostics, with the verdict line, the six figures, the composition list, and the engine tableTap or click the image to view it full screen

A run with no telemetry shows a short explanation in place of the breakdown. Two cases produce it: the run finished before performance telemetry existed, or it was a release of held output, which deliberately does not overwrite the original run's measurements.

Read the breakdown#

The tab leads with one sentence naming the dominant cost, for example that the run took 4m 12s and one engine accounted for 63 percent of its workbook processing time. Workbooks run side by side, so their processing time added together can be longer than the run itself; when it is, the sentence says so, and the share is always of that combined processing time. Where no single engine dominates, it says the time was spread across several engines instead.

Six figures follow.

Figure How to read it
Elapsed Total time, with the volume it covered underneath: data points where the run recorded them, otherwise the formula count. Volume is what makes "twice as slow" and "twice as slow for twice the data" different findings.
Outputs The shape of the run, as generated outputs by workbooks.
Recalculation Time spent recalculating, and how many passes it took.
Peak memory Highest working set, with the average beside it. A long run's sample timeline is thinned, and the figure says when that happened.
Max CPU Highest process CPU, with the host's logical processor count. A run too short to sample twice reports that CPU was never measured, not zero.
Dominant engine The costliest formula family or calculation service, and its total across all the run's workbooks (which can be longer than the run, since workbooks run side by side).

Walk from the run down to a phase#

Below the figures, the screen splits in two. On the left, one list ranks the current scope's contents by cost, largest first, with a bar showing the same proportions. Select a row to go one level deeper. Once you are inside an output, a Back to button and the path (Whole run, output, workbook) appear at the top of that list so you can come back up. The Engines table and the Advanced diagnostics section on the right follow whichever level you pick. The walk is always the same three levels:

  1. Whole run, listing the outputs it generated.
  2. One output, listing the workbooks inside it.
  3. One workbook, listing its processing phases. Phases are the last level.

At workbook level, two tails are listed separately from the ranked phases: phases that ran but cost nothing measurable, and phases that never ran at all. Keeping them apart matters, because "this workbook has no charts" and "charts were free" are different facts about the same run.

Read the engine table#

The Engines table lists one row per formula family (for example the Planning Analytics or SQL retrieval functions, with all built-in Excel functions folded into a single row) and per calculation service, with Calls, Total, Avg, and Recalc passes.

Recalc passes is the column to read. It says once for an engine that ran a single time, or N of M for one that re-ran during recalculation. An engine reading 5 of 5 on a five-pass workbook ran on every pass, and Reportworq highlights that row when the pass count is high enough for it to be expensive. That pattern is worth acting on: a data retrieval repeated on every recalculation pass is usually a formula that can be restructured, not an unavoidable cost. Engines that ran at no measurable cost are counted in a note under the table rather than listed.

Above workbook level the pass counts are folded together from the workbooks in scope, and the table says so, so 5 of 5 there means "in the recalculation loop the whole way" rather than a run-wide total.

Open Advanced diagnostics#

Under the Engines table, Advanced diagnostics holds the run's log and its files. It starts collapsed: select it to open it. Logs lists the job log with its error count and entry count, and Attachments lists each file the run kept with its size. Every row ends with a download button. For reading the log of a failed run, see When a job fails.

Advanced diagnostics open under the Engines table, listing the job log and the run's attachments, each with a download button
Advanced diagnostics open under the Engines table, listing the job log and the run's attachments, each with a download buttonTap or click the image to view it full screen

Notes and limits#

Going deeper. For what to change once you know where the time went, see Manage and improve performance. To find the point in this job's history where its run time changed, rather than judging one run, see Find when a job got slower. Administrators can ask the same question across every job at once, and pivot by product release or execution node, in Compare performance across jobs. To read a failing run's log, attachments, and HTTP trace instead, see When a job fails. To change how long runs and their diagnostics are kept, see Output retention.

Feedback on this page

Comments, questions, requests, or something missing or unclear? Email us - the page you are on is filled in for you.

Email feedback on this page

Or write to support@reportworq.com directly.