FrontTailor 1.0.0 (10 November 2026): inspector, OData, performance, UI5 2.0, AI and operations for SAP Fiori® and UI5 apps – in one panel. What’s inside → +43 664 1964199Contact →

Performance

The performance profiler measures how long the app takes to start and why: requests, bundles, preload, asynchronous loading, OData calls and a blocked main thread. Every check gets a traffic light and a concrete recommendation. The profiler is part of the Pro edition.

Edition
from Pro
Tab
“Performance”
Sharing budgets
via team sync with Team
Surfaces
DevTools panel and side panel
On PROD
measuring allowed, deep profile locked

The tab at a glance

Open the FrontTailor panel in DevTools (F12) or the side panel and choose the Performance tab. The measurement options are at the top; after the first measurement the report follows below. Nothing runs in the page until you click Start measurement.

Performance profiler card with the options Reload page, Without browser cache, UI5 measurements, Deep profile and the Start measurement button
The options before the first measurement. Without the Profiler Companion the deep profile is greyed out.
  1. Reload page measures the full start of the app (recommended). Current page without reload evaluates what happened since the last load.
  2. Without browser cache (cold start) reloads bypassing the HTTP cache; the theme cache is not rated then.
  3. UI5 measurements (sap-ui-measure) reloads with sap-ui-measure=true and gives the rendering time per control type from UI5 itself.
  4. Deep profile (CPU, Chrome debugger): CPU time per UI5 library and app function, see below.
  5. Start measurement.

Start a measurement

  1. Open the app in the browser and choose the Performance tab in the panel.
  2. Keep Reload page selected. For a cold start also tick Without browser cache (cold start).
  3. Click Start measurement. The profiler reloads the page and waits until it is quiet: 1.5 seconds without new requests, at most 18 seconds.
  4. The report appears and is saved as a measurement. Give it a name in the Name of the measurement field, for example “before preload fix”.

If the page does not become quiet in time, the report says “The page did not become quiet within the wait limit; late requests may be missing.” The address is stored without its query string.

The report

Report header with the measurement name, rating summary and export, below it the Performance budget card with verdict and metrics table
Report header and the performance budget of the freestyle demo app with the default values.
  1. Name of the measurement – shown in the list of saved measurements and in the export. Next to it the summary of the ratings: critical, check, good.
  2. Copy as Markdown, Download Markdown and Print view (see export).
  3. The budget verdict: “Budget kept.” or which budgets are exceeded.
  4. Edit budget opens the limits of this app (see budgets).
  5. Where the budget comes from: Default budget, Own budget or Team budget.

The report sections follow below:

SectionContent
Key figuresTime to interactive, First contentful paint, Largest contentful paint, UI5 core loaded, Requests, Transferred, Uncompressed, Single UI5 modules, OData requests, Slowest OData call, Total blocking time
TimelineFirst byte, UI5 core, Component preload, First OData, FCP, LCP, Interactive and Load event on one axis, long tasks as red bars
Best-practice checkevery rule with rating, measured value and recommendation (see below)
Requests and sizescount, transferred and uncompressed size per group: UI5, App, OData, Theme and fonts, FrontTailor, Other
Largest resourcesthe largest files with size and duration
Slowest OData callsrequest, start, duration and status; the source is the OData console, otherwise Resource Timing
Rendering hotspotsscript time in long animation frames per function – with UI5 measurements the rendering time per control type
CPU (deep profile)self time per group and library, only with the deep profile
Key figures of the measurement as tiles with a coloured rating edge and the timeline with first byte, UI5 core, load event, FCP, LCP and interactive
Key figures and timeline. The coloured edge of each tile is its rating.
  1. Time to interactive is an approximation: the moment from which the page was quiet.
  2. The timeline shows the order in which the app loads and where long tasks block the main thread.

Below the key figures sits the Performance tips card: local checks over the measurement, the OData log and load findings – without AI. With your own key the AI can also explain the measurement, see AI assistant.

Best-practice check

Every rule gets a rating: Good, Check, Critical or Info. For Check and Critical the line next to the light bulb says what to change. Critical findings come first.

Best-practice check with the critical findings time to interactive, number of requests, component preload and library preload, each with a recommendation
The demo app loads without preload bundles – the profiler names the cause and the fix.
  1. Rule, rating and measured value.
  2. The recommendation, here: work through the other findings, because preload bundles, asynchronous loading, fewer requests and $batch shorten the start most.

The limits are FrontTailor rules of thumb, not SAP limits:

CheckGood up toCheck up toCritical above
Time to interactive (approx.)3 s6 s6 s
Number of requests80150150
Download size (transferred)2.5 MB5 MB5 MB
Single UI5 modules (library preload)156060
OData requests without $batch31010
Slowest OData call1 s3 s3 s
Blocking time (main-thread blocking)300 ms1 s1 s

Rules without a threshold come on top: a missing Component preload is critical, and so is a synchronous loader (Asynchronous loading) or synchronous routing (Asynchronous routing). You get a warning when the manifest arrives only after the component code (Manifest first), when more than twelve libraries are declared without lazy (Lazy loading), when the theme CSS does not come from the cache (Theme cache) and when Debug mode is on.

Performance budgets per app

A budget sets limits for one app. Every measurement of that app is checked against them, and the verdict sits at the top of the report. FrontTailor recognises the app by sap.app.id and the version by applicationVersion in the manifest.

MetricDefault
Start time (TTI)3.0 s
Requests80
Transferred2.5 MB
Largest app bundle1.0 MB
Synchronous requests0
$batch requests5
Render time (LCP)2.5 s
  1. Measure the app once so FrontTailor knows the app ID and version.
  2. In the Performance budget card, click Edit budget.
  3. Adjust the limits or switch metrics off; switched-off metrics are not monitored. Use Note to record where a value comes from, for example the release review.
  4. Click Save. The card now shows Own budget; Reset to defaults brings back the default values.
Dialog Budget for ft.demo.freestyle with seven metrics, each with a check box, limit and default value, a note field and the buttons Reset to defaults, Save and Cancel
The Budget for … dialog with the default values.

The card’s table shows Measured, Budget and Status for each metric (Within, Exceeded, Not monitored, Not measured). Clicking a metric shows its Trend across the saved measurements with the app version; the dashed line is the budget. The trend appears from two saved measurements of the app. That is how the verdict can say, for example, “Start time (TTI) +38 % since version 1.4.0”.

Export writes the budgets of all apps as JSON, also for CI scripts; Import reads them back. With from Team, team sync hands the budgets to everyone in the team (Team sync). If an administrator sets a budget, it cannot be changed in the panel.

Save and compare measurements

Every measurement goes to the Saved measurements card: per app the latest ten plus one from each older app version. They are stored locally in the browser, without query strings. Show brings back an old report, Delete measurement removes it.

  1. Measure before the change and give the measurement a name.
  2. Change the app – for example build preload bundles – and measure again.
  3. In Saved measurements, pick the measurements for Before and After and click Compare.
  4. The Comparison card shows every key figure with before, after and Change (better, worse, unchanged), and below it every check with both ratings. Close comparison returns to the report.
Comparison card with Before Baseline and After, table of key figures with change and below it the checks with both ratings
Two measurements of the demo app compared. The comparison can be copied as Markdown, too.
  1. Key figure with before, after and the change in time and percent.
  2. Close comparison.

Export and print view

ButtonResult
Copy as Markdownreport or comparison as Markdown with tables on the clipboard, for example for a ticket or a pull request
Download Markdownthe same content as an .md file
Print viewa static HTML page in a new tab, to print or save as PDF from the browser

FrontTailor sends no report anywhere: all three stay in your browser.

Deep profile with the Profiler Companion

The deep profile records CPU time per UI5 library and app function plus all network requests over the Chrome debugger. It needs the free add-on extension FrontTailor Profiler Companion: it holds the Chrome permission debugger, so FrontTailor itself does not need it.

  1. If the companion is not installed, a note below the option offers Install the Profiler Companion. After installing it, click Check again.
  2. Tick Deep profile (CPU, Chrome debugger) and click Start measurement.
  3. While measuring, Chrome shows the bar “FrontTailor Profiler Companion started debugging this browser”. It disappears when the measurement ends; closing it cancels the deep profile – the base report stays complete.
  4. The report then contains the CPU (deep profile) section with self time per group, library and function.

The deep profile ends after 90 seconds at the latest. It is not available in Firefox, because it needs the Chrome debugger.

Typical problems

What you seeCause and fix
“No measurement yet. Start one to see the report.”The profiler only measures on a click. Click Start measurement.
“… did not become quiet …; late requests may be missing.”The app is still loading after 18 seconds, for example because of polling. The report is still useful; late requests are missing.
Theme cache shows Info instead of a ratingWith Without browser cache (cold start) the theme cache is not rated.
Rendering hotspots name no control typesSwitch on UI5 measurements (sap-ui-measure) for rendering time per control type.
Deep profile is greyed outThe Profiler Companion is missing or too old, the browser has no Chrome debugger, or the host is marked as PROD. The note below the option names the reason.
No budget verdictThe page has no app component (no sap.app.id) or every metric is switched off: “No budget is monitored for this app.”

See also

Sources on this page

The superscript numbers in the text point here. Tap one to see the source right where it is used; all sources of this website are listed on one page.

  1. 1

    Performance profiler with traffic light ↑Product · FrontTailor product documentation, ADR-016 “Performance profiler” · checked on 2026-11-09

  2. 2

    Performance budgets per app ↑Product · FrontTailor product documentation, ADR-044 “Performance budgets” · checked on 2026-11-09

Frequently asked

Short answers.

How do I measure the load time of a SAPUI5 app?
Open the Performance tab in the FrontTailor panel, keep Reload page selected and click Start measurement. The profiler reloads the page, waits until it is quiet and shows key figures, a timeline and a best-practice check with recommendations.
May I use the profiler on PROD?
Yes. A measurement only reads, so it is allowed on PROD. Only the deep profile is locked there, because it attaches a debugger to the tab.
Which edition do I need for performance budgets?
The profiler and budgets are part of the Pro edition. Sharing budgets with the whole team via team sync needs the Team edition; exporting them as JSON works with Pro.
Does the profiler send measurement data to a server?
No. Measurements stay locally in the browser, without query strings. Export as Markdown and the print view only happen on a click and stay in your browser.

Your question isn’t here? Talk to me: +43 664 1964199 office@clouddna.at Get in touch

Contact

Ten tabs too many? Talk to us.

You buy Pro and Team right here. For Enterprise, sideloading, policies, a workshop or a stubborn bug in your Fiori landscape: write to me. I reply within one working day, personally.

Martin KochManaging Director, CloudDNAI read every request myself and reply personally.