Performance
Der Performance-Profiler misst, wie lange die App zum Starten braucht und woran es liegt: Requests, Bundles, Preload, asynchrones Laden, OData-Calls und blockierte Main-Threads. Jede Prüfung bekommt eine Ampel und eine konkrete Empfehlung. Der Profiler gehört zur Pro-Edition.
- Edition
- ab Pro
- Tab
- „Performance“
- Budgets teilen
- per Team-Sync mit Team
- Oberflächen
- DevTools-Panel und Side-Panel
- Auf PROD
- Messen erlaubt, Tiefenprofil gesperrt
Der Tab im Überblick
Öffne in den DevTools (F12) das Panel FrontTailor oder das Side-Panel und wähle den Tab Performance. Oben stehen die Optionen der Messung, darunter nach der ersten Messung der Bericht. In der Seite läuft nichts, bevor du Messung starten klickst.

- Seite neu laden misst den vollständigen Start der App (empfohlen). Aktuelle Seite ohne Neuladen wertet aus, was seit dem letzten Laden passiert ist.
- Ohne Browser-Cache (Kaltstart) lädt am HTTP-Cache vorbei neu; der Theme-Cache wird dann nicht bewertet.
- UI5-Messungen (sap-ui-measure) lädt mit
sap-ui-measure=trueneu und liefert die Renderzeit je Control-Typ direkt aus UI5. - Tiefenprofil (CPU, Chrome-Debugger): CPU-Zeit je UI5-Bibliothek und App-Funktion, siehe unten.
- Messung starten.
Eine Messung starten
- Öffne die App im Browser und wähle im Panel den Tab Performance.
- Lass Seite neu laden gewählt. Für einen Kaltstart setze zusätzlich Ohne Browser-Cache (Kaltstart).
- Klicke Messung starten. Der Profiler lädt die Seite neu und wartet, bis sie ruhig ist: 1,5 Sekunden ohne neue Requests, höchstens 18 Sekunden.
- Der Bericht erscheint und wird als Messung gespeichert. Gib ihr im Feld Name der Messung einen Namen, etwa „vor Preload-Fix“.
Wird die Seite in der Wartezeit nicht ruhig, steht über dem Bericht „Die Seite wurde innerhalb der Wartezeit nicht ruhig; späte Requests können fehlen.“ Gespeichert wird die Adresse ohne Query-String.
Der Bericht

- Name der Messung – erscheint in der Liste der gespeicherten Messungen und im Export. Daneben die Zusammenfassung der Ampeln: kritisch, prüfen, gut.
- Als Markdown kopieren, Markdown herunterladen und Druckansicht (siehe Export).
- Das Urteil des Budgets: „Budget eingehalten.“ oder welche Budgets überschritten sind.
- Budget bearbeiten öffnet die Grenzwerte dieser App (siehe Budgets).
- Woher das Budget stammt: Standardbudget, Eigenes Budget oder Team-Budget.
Darunter folgen die Abschnitte des Berichts:
| Abschnitt | Inhalt |
|---|---|
| Kennzahlen | Zeit bis interaktiv, Erster Inhalt (FCP), Größter Inhalt (LCP), UI5-Core geladen, Requests, Übertragen, Unkomprimiert, Einzelne UI5-Module, OData-Requests, Langsamster OData-Call, Blockierzeit gesamt |
| Zeitachse | Erstes Byte, UI5-Core, Component-Preload, Erstes OData, FCP, LCP, Interaktiv und Load-Event auf einer Achse, lange Tasks als rote Balken |
| Best-Practice-Prüfung | jede Regel mit Ampel, Messwert und Empfehlung (siehe unten) |
| Requests und Größen | Anzahl, übertragene und unkomprimierte Größe je Gruppe: UI5, App, OData, Theme und Schriften, FrontTailor, Sonstige |
| Größte Ressourcen | die größten Dateien mit Größe und Dauer |
| Langsamste OData-Calls | Request, Start, Dauer und Status; Quelle ist die OData-Konsole, sonst Resource Timing |
| Rendering-Hotspots | Skriptzeit in langen Animation-Frames je Funktion – mit UI5-Messungen die Renderzeit je Control-Typ |
| CPU (Tiefenprofil) | Eigenzeit je Gruppe und Bibliothek, nur mit Tiefenprofil |

- Zeit bis interaktiv ist eine Näherung: der Zeitpunkt, ab dem die Seite ruhig war.
- Die Zeitachse zeigt, in welcher Reihenfolge die App lädt und wo lange Tasks den Main-Thread blockieren.
Unter den Kennzahlen steht die Karte Performance-Tipps: lokale Prüfungen über Messung, OData-Log und Lade-Befunde – ohne KI. Mit eigenem Schlüssel kann die KI die Messung zusätzlich erklären, siehe KI-Assistent.
Best-Practice-Prüfung
Jede Regel bekommt eine Bewertung: Gut, Prüfen, Kritisch oder Info. Bei Prüfen und Kritisch steht neben der Glühbirne, was du ändern solltest. Die kritischen Befunde stehen oben.

- Regel, Ampel und Messwert.
- Die Empfehlung, hier: die übrigen Befunde abarbeiten, weil Preload-Bundles, asynchrones Laden, weniger Requests und
$batchden Start am meisten verkürzen.
Die Grenzen sind Faustregeln von FrontTailor, keine Grenzwerte von SAP:
| Prüfung | Gut bis | Prüfen bis | Kritisch über |
|---|---|---|---|
| Zeit bis interaktiv (Näherung) | 3 s | 6 s | 6 s |
| Anzahl Requests | 80 | 150 | 150 |
| Downloadgröße (übertragen) | 2,5 MB | 5 MB | 5 MB |
| Einzelne UI5-Module (Library-Preload) | 15 | 60 | 60 |
OData-Requests ohne $batch | 3 | 10 | 10 |
| Langsamster OData-Call | 1 s | 3 s | 3 s |
| Blockierzeit (Blockierter Main-Thread) | 300 ms | 1 s | 1 s |
Dazu kommen Regeln ohne Schwelle: Ein fehlender Component-Preload ist kritisch, ebenso ein synchroner Loader (Asynchrones Laden) oder synchrones Routing (Asynchrones Routing). Eine Warnung gibt es, wenn das Manifest erst nach dem Komponenten-Code kommt (Manifest first), wenn mehr als zwölf Bibliotheken ohne lazy deklariert sind (Lazy Loading), wenn das Theme-CSS nicht aus dem Cache kommt (Theme-Cache) und wenn der Debug-Modus an ist.
Performance-Budgets je App
Ein Budget legt für eine App Grenzwerte fest. Jede Messung dieser App wird dagegen geprüft, das Urteil steht oben im Bericht. Die App erkennt FrontTailor an sap.app.id, die Version an applicationVersion im Manifest.
| Kennzahl | Standard |
|---|---|
| Startzeit (TTI) | 3,0 s |
| Requests | 80 |
| Übertragen | 2,5 MB |
| Größtes App-Bundle | 1,0 MB |
| Synchrone Requests | 0 |
| $batch-Requests | 5 |
| Renderzeit (LCP) | 2,5 s |
- Miss die App einmal, damit FrontTailor App-ID und Version kennt.
- Klicke in der Karte Performance-Budget auf Budget bearbeiten.
- Passe die Grenzwerte an oder schalte Kennzahlen aus; ausgeschaltete werden nicht überwacht. Unter Notiz hältst du fest, woher der Wert kommt, etwa aus dem Release-Review.
- Klicke Speichern. Die Karte zeigt jetzt Eigenes Budget; Auf Standard zurücksetzen holt die Standardwerte zurück.

Die Tabelle der Karte zeigt je Kennzahl Gemessen, Budget und Status (Im Budget, Überschritten, Nicht überwacht, Nicht gemessen). Ein Klick auf eine Kennzahl zeigt ihren Verlauf über die gespeicherten Messungen mit App-Version; die gestrichelte Linie ist das Budget. Der Verlauf erscheint ab zwei gespeicherten Messungen der App. So steht im Urteil etwa „Startzeit (TTI) +38 % seit Version 1.4.0“.
Exportieren schreibt die Budgets aller Apps als JSON, auch für CI-Skripte; Importieren liest sie wieder ein. Mit ab Team verteilt Team-Sync die Budgets an alle im Team (Team-Sync). Gibt eine Administration ein Budget vor, lässt es sich im Panel nicht ändern.
Messungen speichern und vergleichen
Jede Messung landet in der Karte Gespeicherte Messungen: je App die letzten zehn plus je eine aus älteren App-Versionen. Gespeichert wird lokal im Browser, ohne Query-Strings. Anzeigen holt einen alten Bericht zurück, Messung löschen entfernt ihn.
- Miss vor der Änderung und gib der Messung einen Namen.
- Ändere die App – etwa Preload-Bundles bauen – und miss erneut.
- Wähle in Gespeicherte Messungen die Messungen für Vorher und Nachher und klicke Vergleichen.
- Die Karte Vergleich zeigt jede Kennzahl mit Vorher, Nachher und Änderung (besser, schlechter, unverändert), darunter jede Prüfung mit beiden Ampeln. Vergleich schließen kehrt zum Bericht zurück.

- Kennzahl mit Vorher, Nachher und Änderung in Zeit und Prozent.
- Vergleich schließen.
Export und Druckansicht
| Button | Ergebnis |
|---|---|
| Als Markdown kopieren | Bericht oder Vergleich als Markdown mit Tabellen in der Zwischenablage, etwa für ein Ticket oder einen Pull Request |
| Markdown herunterladen | derselbe Inhalt als .md-Datei |
| Druckansicht | statische HTML-Seite in einem neuen Tab, zum Drucken oder Speichern als PDF über den Browser |
FrontTailor schickt keinen Bericht irgendwohin: Alle drei Wege bleiben in deinem Browser.
Tiefenprofil mit dem Profiler Companion
Das Tiefenprofil zeichnet CPU-Zeit je UI5-Bibliothek und App-Funktion sowie alle Netzwerk-Requests über den Chrome-Debugger auf. Dafür braucht es die kostenlose Zusatz-Extension FrontTailor Profiler Companion: Sie hält die Chrome-Berechtigung debugger, FrontTailor selbst braucht sie deshalb nicht.
- Ist der Companion nicht installiert, steht unter der Option ein Hinweis mit Profiler Companion installieren. Nach der Installation klicke Erneut prüfen.
- Setze Tiefenprofil (CPU, Chrome-Debugger) und klicke Messung starten.
- Während der Messung zeigt Chrome die Leiste „FrontTailor Profiler Companion hat mit dem Debuggen dieses Browsers begonnen“. Sie verschwindet am Ende der Messung; wer sie schließt, bricht das Tiefenprofil ab – der Basisbericht bleibt vollständig.
- Der Bericht enthält dann den Abschnitt CPU (Tiefenprofil) mit Eigenzeit je Gruppe, Bibliothek und Funktion.
Das Tiefenprofil endet spätestens nach 90 Sekunden. In Firefox gibt es es nicht, weil es den Chrome-Debugger braucht.
Typische Probleme
| Was du siehst | Ursache und Lösung |
|---|---|
| „Noch keine Messung. Starten Sie eine, um den Bericht zu sehen.“ | Der Profiler misst nur auf Klick. Klicke Messung starten. |
| „… nicht ruhig; späte Requests können fehlen.“ | Die App lädt nach 18 Sekunden noch nach, etwa durch Polling. Der Bericht ist trotzdem brauchbar; späte Requests fehlen. |
| Theme-Cache ist Info statt bewertet | Bei Ohne Browser-Cache (Kaltstart) wird der Theme-Cache nicht bewertet. |
| Rendering-Hotspots nennen keine Control-Typen | Schalte UI5-Messungen (sap-ui-measure) ein, um die Renderzeit je Control-Typ zu sehen. |
| Tiefenprofil ist ausgegraut | Der Profiler Companion fehlt oder ist zu alt, der Browser hat keinen Chrome-Debugger, oder der Host ist als PROD markiert. Der Hinweis unter der Option nennt den Grund. |
| Kein Budget-Urteil | Die Seite hat keine App-Komponente (kein sap.app.id) oder alle Kennzahlen sind ausgeschaltet: „Für diese App ist kein Budget aktiv.“ |
Siehe auch
- Funktionen im Überblick Funktionen · Performance
- Zum Nachlesen SAPUI5 – The Comprehensive Guide (SAP PRESS)
- Hilfe von Menschen Fiori-Performance-Review
- Doku OData-Konsole
- Doku Host-Profile und PROD
- Doku KI-Assistent
- Belege ADR-0161 · ADR-0442