Der Roblox MicroProfiler: Performance-Probleme und Lag effektiv analysieren
Der MicroProfiler ist eines der mächtigsten, aber oft missverstandenen Werkzeuge auf Roblox. Er hilft dir dabei, exakt herauszufinden, warum dein Spiel ruckelt, Frames verliert oder einfriert. Während die normale Performance-Anzeige (Shift + F5) dir nur sagt, dass die Framerate sinkt, visualisiert der MicroProfiler, wer die Schuld daran trägt (z. B. Skripte, Physik oder Rendering).
In diesem Tutorial lernst du Schritt für Schritt, wie du den MicroProfiler aktivierst, liest und für deine Spieloptimierung nutzt.
1. Den MicroProfiler öffnen und schließen
Du kannst den Profiler sowohl im Roblox Studio als auch im regulären Roblox-Client verwenden.
- Tastenkombination:
- Windows:
Strg + F6 - Mac:
Cmd + F6
- Windows:
- Alternativ über das Menü:
- Drücke
Esc> Gehe auf Einstellungen (Settings) > Scrolle nach unten zu MicroProfiler und schalte ihn auf Ein (On).
- Drücke
Tipp: Mit Strg + F6 kannst du zwischen einer kompakten Balkenanzeige am oberen Bildschirmrand und dem vollständigen Interface umschalten.
2. Die Benutzeroberfläche verstehen
Sobald der Profiler aktiv ist, siehst du am oberen Bildschirmrand eine Reihe horizontaler Balken, die von rechts nach links wandern.
- Jeder Balken entspricht einem Frame (Einzelbild):
- Für flüssige 60 FPS muss ein Frame in unter 16,6 Millisekunden (ms) berechnet werden.
- Für 120 FPS muss er in unter 8,3 ms berechnet werden.
- Die Budget-Linie (Orange/Rot):
- Wenn die Balken unter dieser Linie bleiben, läuft das Spiel flüssig.
- Ragt ein Balken deutlich nach oben heraus (Spike), gab es in diesem Frame einen spürbaren Ruckler.
3. Einen Frame einfrieren und pausieren
Um die Ursache eines Lag-Spikes zu analysieren, musst du das Geschehen anhalten:
- Drücke
Strg + P(Mac:Cmd + P), wenn der Ruckler auftritt. - Der Profiler pausiert und zeigt dir einen detaillierten Zeitstrahl (Timeline) des aktuellen Geschehens.
- Navigation im pausierten Profiler:
- Mausrad: Hinein- und Herauszoomen.
- Linksklick + Ziehen: Entlang der Zeitachse nach links oder rechts scrollen.
- Klick auf einen Block: Zeigt unten links Details wie Name und exakte Dauer (in ms) des Prozesses an.
4. Die Daten interpretieren: Wer verursacht den Lag?
Die detaillierte Ansicht ist hierarchisch aufgebaut (wie ein Stammbaum von oben nach unten). Ein übergeordneter Block teilt sich in viele kleinere Unterprozesse auf. Suche immer nach den breitesten Blöcken – sie verbrauchen die meiste Zeit.
Hier sind die häufigsten Kategorien:
A. Skript-Lag (Script / Heartbeat / Stepped)
- Symptom: Breite Blöcke unter Prozessen wie
RunService.Heartbeat,SteppedoderRenderStepped. - Ursache: Deine Luau-Skripte verbrauchen zu viel Rechenzeit pro Frame (z. B. schwere Berechnungen in einer
while true do-Schleife ohnetask.wait(), ineffiziente Algorithmen).
B. Physik-Lag (worldStep / Physics)
- Symptom: Große Abschnitte unter dem Label
worldStep. - Ursache: Zu viele ungesicherte (unanchored) Parts, komplexe Kollisionsprüfungen (
CanCollide = true), MeshParts mitCollisionFidelity = DefaultstattBoxoderHull.
C. Rendering-Lag (Render / Scene / UpdateLighting)
- Symptom: Breite Blöcke unter Rendering-Threads.
- Ursache: Zu hohe Mesh-Polygon-Dichte, zu viele Schattenquellen (
CastShadow), übermäßiger Einsatz transparenter Objekte oder zu viele komplexe Partikeleffekte.
5. Profi-Tipp: Eigenen Code markieren (debug.profilebegin)
Manchmal siehst du im MicroProfiler nur, dass irgendein Skript laggt, weißt aber nicht, welches. Hierfür kannst du benutzerdefinierte Labels in deinen Code einfügen:
-- Beginn der Messung
debug.profilebegin("MeinSchwererAlgorithmus")
-- Hier steht der Code, den du testen möchtest:
for i = 1, 100000 do
local test = math.sqrt(i)
end
-- Ende der Messung
debug.profileend()
Wenn du den MicroProfiler jetzt pausierst (Strg + P) und heranzoomst, siehst du einen Block mit dem Namen "MeinSchwererAlgorithmus". So kannst du exakt feststellen, wie viele Millisekunden dieser spezifische Codeblock verbraucht hat.
6. Client- vs. Server-Profilierung
Standardmäßig zeigt der MicroProfiler nur an, was auf dem Client (auf deinem Gerät) passiert. Wenn der Server laggt, siehst du das dort nicht direkt.
- Server-Dump erstellen:
- Öffne das Menü des MicroProfilers (im erweiterten Modus).
- Klicke oben auf Dump > Server > 1 Frame (oder mehrere).
- Roblox speichert eine HTML-Datei auf deinem PC (unter
%localappdata%\Roblox\logs). - Öffne diese HTML-Datei in deinem Browser, um zu sehen, was der Roblox-Server in diesem Moment berechnet hat.
Zusammenfassung zur Fehlerbehebung
Strg + F6drücken, um das Tool zu öffnen.- Warten, bis ein Lag-Spike auftritt.
- Schnell
Strg + Pdrücken, um das Bild einzufrieren. - Den höchsten/breitesten Block suchen:
- Breites
worldStep? Physik und Kollisionen optimieren. - Breites
Render? Meshes, Schatten und Lichter reduzieren. - Breites
Script? Eigene Schleifen und Berechnungen überarbeiten.
- Breites