
So optimieren Sie Ihr Spiel mit der Profilanalyse
Diese Seite bietet eine umfassende Einführung in die Hinzufügung der Profilanalyse zu Ihrem Arsenal an Unity- und nativen Plattform-Profiling-Tools.
Die Profilanalyse ist eines der vielen Features, die im E-Book Ultimative Anleitung zum Profiling von Unity-Spielen (Unity 6 Edition) behandelt werden. Dieser Leitfaden vereint fortgeschrittenes Wissen und Ratschläge von externen und internen Unity-Experten, wie man eine Anwendung in Unity profiliert, ihren Speicher verwaltet und ihren Stromverbrauch von Anfang bis Ende optimiert.

Profilanalyse-Durchgang
Möchten Sie wissen, wo Sie die Leistung verbessern können? Möchten Sie Leistungswerte vor und nach einer Änderung vergleichen? Sind Sie sich der Auswirkungen bewusst, die eine Aktualisierung der Unity-Version auf Ihr Spiel hat? Die Profilanalyse hilft Ihnen, solche Fragen zu beantworten. Während der Standard-Unity-Profiler eine Einzelrahmenanalyse ermöglicht, kann die Profilanalyse Profilmarkerdaten aggregieren und visualisieren, die aus einer Reihe von Unity-Profiler-Rahmen erfasst wurden.
Überblick über die Profilanalyse
Während der Standard-Unity-Profiler eine detaillierte Analyse einzelner Frames ermöglicht, aggregiert und visualisiert die Profilanalyse Markerdaten, die aus mehreren Unity-Profiler-Rahmen erfasst wurden, und bietet einen breiteren, "großen Überblick". Dies erleichtert den Vergleich und die Analyse von Leistungsdaten über mehrere Frames oder verschiedene Profiling-Sitzungen hinweg.
Um mit der Profilanalyse zu beginnen:
1. Installieren Sie das Profilanalyse-Paket über Fenster > Paketverwaltung > Paketmanager.
2. Gehen Sie zum Unity-Register und durchsuchen Sie es oder verwenden Sie den Suchfilter, um das Profilanalyse-Paket zu finden.
Die Profilanalyse zieht eine Reihe von Frames, die im Unity-Profiler erfasst wurden, und führt eine statistische Analyse durch. Die angezeigten Daten bieten nützliche Informationen zur Leistungszeit für jede Funktion, wie Min-, Max-, Mittel- und Medianzeiten.
Da der Profilanalysator hervorragend geeignet ist, um Vergleiche von Datensätzen durchzuführen, sollten Sie ihn während der gesamten Spielentwicklung verwenden, um Klarheit über Leistungs- und Optimierungsherausforderungen zu erhalten. Sie können ihn auch verwenden, um ein Spiel-Szenario auf Leistungsunterschiede zu testen, die Daten vor und nach der Profilerstellung für Code-Refaktorisierung und Optimierung, neue Funktionen oder sogar Unity-Version-Upgrades zu vergleichen. Ein nützlicher Tipp ist, Profilsitzungen zu speichern, um die Leistung vor und nach der Optimierungsarbeit zu vergleichen, wenn Sie den Profilanalysator verwenden.
Der Profilanalysator hilft Ihnen, herauszufinden, wo Sie Ihre Bemühungen konzentrieren sollten. Er bietet Ihnen eine Möglichkeit, zwei Unity-Leistungsprofilaufnahmen nebeneinander zu vergleichen und die Auswirkungen Ihrer Änderungen zu überprüfen.
Der Profilanalysator ergänzt die bereits im Unity Profiler verfügbare Einzelrahmenanalyse. Er aggregiert und visualisiert Rahmen- und Markerdaten aus einer Reihe von Unity Profiler-Rahmen, um Ihnen zu helfen, hochrangige Leistungsüberzeitmuster über viele Rahmen hinweg zu sehen.
Der Profilanalysator führt eine CPU-Leistungsanalyse über mehrere Rahmen aus den aktuellen Profiler-Sitzungsrahmen oder aus zuvor gespeicherten Aufnahmen durch. Das Tool bietet Statistiken und Visualisierungen, um Ihnen zu helfen, Informationen, die in Aufnahmen gespeichert sind, schnell zu entschlüsseln. Seine Umfassende Filterung Funktion ermöglicht es Ihnen auch, in die Abschnitte einzutauchen, die Sie interessieren. Sie können es verwenden, um zwei Datensätze zu vergleichen, oder Sie können Rohdaten für die Analyse mit anderen Tools exportieren.
Sie können den Profilanalysator über Fenster > Paket-Manager installieren.

Erste Schritte
Um zu beginnen, müssen Sie zuerst Daten mit dem Profiler erfassen und dann den Profilanalysator mit diesen Daten füllen, um eine Analyse durchzuführen.
Die Verwendung aggregierter Daten gibt Ihnen eine informiertere Sicht darauf, was in Ihrem Spiel vor sich geht, anstatt nur einen Rahmen zur Zeit zu betrachten. Zum Beispiel müssen Sie in einer 300-Rahmen (10-Sekunden) Gameplay-Aufnahme oder einer 20-Sekunden-Ladefolge möglicherweise wissen:
- Was sind die größten CPU-Kosten auf den Haupt- und Render-Threads?
- Was sind die Mittel-/Median-/Gesamtkosten jedes dieser Marker?
Diese wesentlichen Fragen zu beantworten, kann Ihnen helfen, die größten Probleme zu lokalisieren und deren Optimierungen zu priorisieren.
Die Statistiken und Details, die mit dem Profilanalysator verfügbar sind, ermöglichen es Ihnen, tiefer in die Leistungsmerkmale Ihres Codes einzutauchen, wenn Sie über mehrere Rahmen hinweg arbeiten oder sogar im Vergleich zu früheren Profilsitzungen.

Ansichten der Profilanalyse
Beachten Sie die Modus Auswahl oben im Fenster. Der Profilanalysator hat mehrere Ansichten und Ansätze zur Analyse von Profildaten. Verwenden Sie die verschiedenen Ansichten, um Sets von Profildaten auszuwählen, zu sortieren, anzuzeigen und zu vergleichen.

Das Marker-Zusammenfassungsfenster
Verwenden Sie das Frame Control Panel, um einen oder einen Bereich von Frames auszuwählen. Wenn ausgewählt, aktualisiert sich das Marker Details Fenster, um aggregierte Daten für die Auswahl mit einer sortierbaren Liste von Markern anzuzeigen, die nützliche Statistiken enthalten.
Das Marker Summary Pane zeigt detaillierte Informationen zu den ausgewählten Markern an. Jeder Marker in der Liste ist eine Aggregation aller Instanzen dieses Markers über alle gefilterten Threads im Bereich der ausgewählten Frames.

Die Einzelansicht
Die Einzel ansicht ist der Standardstartpunkt des Profilanalysators und bietet sofort Antworten auf hochrangige Leistungsfragen über die Zeit. Die Einzelansicht zeigt Informationen über ein einzelnes Set erfasster Profildaten an. Verwenden Sie es, um zu analysieren, wie Profilmarker über Frames hinweg abschneiden. Diese Ansicht ist in mehrere Panels unterteilt, die Informationen zu Zeiten sowie zu min, max, median, mean und unteren/oberen Quartilwerten für Frames, Threads und Marker enthalten.

Die Vergleichsansicht
Die Vergleichsansicht ist besonders effektiv zur Analyse von Leistungsvariationen, da sie es Ihnen ermöglicht, zwei verschiedene Datensätze zu laden, die dann in verschiedenen Farben für einen klaren, nebeneinander Vergleich angezeigt werden.

Vergleichen Sie Leistungsänderungen
Verwenden Sie die folgenden Schritte, um Leistungsänderungen mit dem Profilanalysator zu vergleichen. Sie können entweder die Pull Data Option aus einer aktiven Unity Profiler Aufnahme oder die Load Data Option aus einer gespeicherten Sitzung verwenden. Beim Laden müssen die Dateien im .pdata-Format des Profilanalysators vorliegen. Für Unity Profiler .data-Dateien öffnen Sie sie zuerst im Profiler-Fenster und verwenden dann Daten abrufen im Profilanalysator. Es wird auch empfohlen, Ihre ursprünglichen .data-Dateien aus dem Profiler zu speichern.
1. Bereiten Sie einen Test vor: Wählen Sie einen konsistenten Abschnitt Ihres Spiels aus, um ihn für einen sinnvollen Benchmark-Vergleich zu profilieren. Ein geskripteter oder wiederholbarer manueller Durchlauf funktioniert am besten, um zufällige Nebeneffekte zu minimieren, die die Leistung beeinträchtigen.
2. Erfassen Sie "Vorher"-Daten:
- Öffnen Sie den Profilanalysator (Fenster > Analyse > Profilanalysator).
- Im Unity Profiler zeichnen Sie eine Profiling-Sitzung Ihres gewählten Gameplays auf, bevor Sie Optimierungen vornehmen.
- Klicken Sie im Vergleichen-Tab des Analysators auf die erste Daten abrufen-Schaltfläche. Dies lädt die aktuelle Erfassung aus dem Profiler oder alternativ können Sie die Sitzung speichern.
3. Optimieren und "Nachher"-Daten erfassen:
- Wenden Sie Ihre Code- oder Leistungsverbesserungen an.
- Löschen Sie die vorherigen Daten des Unity Profilers und zeichnen Sie dann eine neue Profiling-Sitzung des gleichen Gameplays auf.
- Klicken Sie im Profilanalysator auf die zweite Schaltfläche Daten abrufen, um diese neue Sitzung zu laden.
4. Analysieren Sie die Unterschiede:
- Das Marker-Vergleich-Fenster zeigt, wie sich die Markerzeiten zwischen Ihren "Vorher"- (links) und "Nachher"- (rechts) Erfassungen unterscheiden.
- Spalten, die mit < oder > gekennzeichnet sind, zeigen an, welche Erfassung für diese Metrik einen größeren Wert hatte.
- Sie können ändern, welche Metriken verglichen werden, indem Sie den Marker-Spalten-Filter verwenden.
Verweisen Sie auf die Seite zum Vergleich der Ansicht für weitere Details zu jeder Marker-Vergleichsspalte.
Vergleich von Median- und längsten Frames
Vergleichen Sie die Median- und längsten Frames innerhalb eines einzelnen Profiler-Captures, um Dinge zu identifizieren, die im letzteren auftreten und im ersteren nicht erscheinen, oder um zu sehen, was länger als durchschnittlich dauert, um abzuschließen.
Öffnen Sie die Vergleichsansicht des Profilanalysators und laden Sie denselben Datensatz für die linke und rechte Seite. Sie können auch einen Datensatz in der Einzelansicht laden und dann zu Vergleich wechseln.
Klicken Sie mit der rechten Maustaste auf das obere Frame Control-Diagramm und wählen Sie Median-Frame auswählen. Klicken Sie mit der rechten Maustaste auf das untere Diagramm und wählen Sie Längsten Frame auswählen.
Das Vergleichsfenster des Profilanalysators wird aktualisiert, um die Unterschiede anzuzeigen.
Ein weiterer nützlicher Trick zum Vergleichen von Daten besteht darin, beide Diagramme nach Frame-Dauer zu sortieren (Rechtsklick > Nach Frame-Dauer sortieren), und dann einen Bereich in jedem Satz auszuwählen, wobei Sie sich entweder auf die Ausreißer-Frames konzentrieren oder diese ausschließen (Frames, die unverhältnismäßig lang oder kurz sind).
Dies ermöglicht es Ihnen, die typischsten Frames mit den extremsten zu vergleichen. Die Daten werden dann in der Marker-Vergleichstabelle für den ausgewählten Bereich angezeigt, was die Analyse erleichtert, was zu Leistungsspitzen oder Inkonsistenzen beiträgt.

Schnelle Tipps zur Profilanalyse
- Drillen Sie in Benutzerskripte (unter Ignorierung der Unity Engine API-Ebenen) ein, indem Sie eine Tiefe von 4 auswählen. Nachdem Sie auf diese Ebene gefiltert haben und den Unity Profiler im Timeline-Modus betrachten, können Sie die Tiefe des Aufrufstapels korrelieren, um hier eine Auswahl zu treffen – Monobehaviour-Skripte erscheinen auf der vierten Ebene in Blau. Dies ist eine schnelle Möglichkeit zu sehen, ob Ihre spezifische Logik und Gameplay-Skripte allein ohne andere "Geräusche" belastend sind.
- Filtern Sie Daten auf die gleiche Weise für andere Bereiche der Unity-Engine, wie Animator oder Engine-Physik.
- Auf der rechten Seite im Abschnitt Frame Summary finden Sie das hervorgehobene Leistungsspektrum-Histogramm der Methode. Fahren Sie mit der Maus über die Max Frame-Zahl (der genaue Frame, in dem die maximale Zeit gefunden wurde), um einen klickbaren Link zu erhalten, um die Frame-Auswahl im Unity Profiler anzuzeigen. Verwenden Sie diese Ansicht, um andere Faktoren zu analysieren, die möglicherweise zur hohen maximalen Frame-Zeit beitragen.
- Wenn Sie einen Breitbildmonitor oder zwei Monitore zur Verfügung haben, kann es nützlich sein, den Profilanalysator und den Unity Profiler nebeneinander zu öffnen. Dieses Setup ermöglicht es Ihnen, einen Frame im Profilanalysator doppelt zu klicken, um automatisch denselben Frame im Unity Profiler auszuwählen, von wo aus Sie ihn weiter untersuchen können, indem Sie die Timeline- oder Hierarchieansichten verwenden.
Erfahren Sie mehr über den Profiler Analyzer mit diesen Ressourcen:
- Profilanalyse Anleitung & Tutorial

Sie finden viele weitere optimale Vorgehensweisen und Tipps für fortgeschrittene Unity-Entwickler und -Ersteller im Unity-Best-Practices-Hub. Wählen Sie aus über 30 Leitfäden, die von Branchenexperten sowie Unity-Ingenieuren und technischen Künstlern erstellt wurden, die Ihnen helfen, effizient mit Unitys Werkzeugen und Systemen zu entwickeln.