Das finden Sie auf dieser Seite: Sie erfahren, wie Sie Unitys Profilanalyse verwenden, um die Auswirkungen einer Asset- oder Code-Veränderung, einer Optimierung, Einstellungsänderung oder eines Upgrades der Unity-Version festzustellen. Dieser Artikel basiert auf der Session von Lyndon Homewood auf der Unite in Kopenhagen 2019.
Überblick über die Profilanalyse
Wollen Sie wissen, worauf Sie Ihre Bemühungen zur Leistungssteigerung konzentrieren sollten? 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 Leistungsanalyse wird Ihnen helfen, diese Übersicht zu erhalten.
Das Tool hilft Ihnen dabei, festzustellen, worauf Sie Ihre Bemühungen konzentrieren müssen, und es bietet Ihnen eine Möglichkeit, zwei Leistungserfassungen von Unity zu vergleichen und die Auswirkungen Ihrer Veränderung zu sehen. Das Tool bietet visuelle Darstellungen, die Ihnen helfen zu verstehen, wie sich Ihre Änderungen auf die Leistung auswirken.
Die Profilanalyse aggregiert und visualisiert Frame- und Marker-Daten aus einem Satz von Unity-Profiler-Frames, um Ihnen zu helfen, das Verhalten dieser Frames über viele Frames zu erklären, und ergänzt so die Einzel-Frame-Analyse, die bereits im Unity-Profiler verfügbar ist.
Die Profilanalyse führt eine CPU-Leistungsanalyse für mehrere Frames durch. Das Tool ist mit Statistiken und Visualisierungen ausgestattet, damit Sie diese Informationen schnell verarbeiten können. Es unterstützt auch Comprehensive Filtering, sodass Sie in die Abschnitte, die Sie interessieren, einsteigen können. Sie können es verwenden, um zwei Datensätze zu vergleichen, oder Sie können die Daten zur Analyse mit anderen Tools exportieren.
Sie können die Profilanalyse in 2018.4 LTS+ als Paket verwenden oder herunterladen und dann in Ihr Projekt einfügen. Sie funktioniert mit jeder Unity-Version von 5.6 aufwärts. Um sie zu starten, wechseln Sie zu „Window (Fenster) > Analysis (Analyse) > Profile Analyzer (Profilanalyse)“. In älteren Unity-Versionen können Sie sie direkt im Fenstermenü starten.
Profiling-Tipps
Hier sind einige Profiling-Tipps, die Ihnen beim Start mit der Profilanalyse helfen:
- Erhalten Sie eine repräsentative und wiederholbare Erfassung.
- Schließen Sie alle anderen Anwendungen. Sie können „Profile.logFile“ in Ihren C#-Skripts verwenden, um Profildaten direkt aus dem laufenden Spiel herauszuschreiben, was bedeutet, dass der Editor nicht geöffnet sein muss. Es wird eine .raw-Datei geschrieben, die Sie anschließend in den Unity-Profiler laden können.
- Deaktivieren Sie die CPU-Leistungsskalierung, damit Sie keine Änderung Ihrer Taktfrequenz erhalten, wie z. B. die Intel SpeedStep- oder Turbo-Boost-Einstellungen.
Überprüfung der Leistung für eine bestimmte Funktion
Wenn Sie sehen möchten, wie sich der Aufruf einer Funktion auf die Leistung auswirkt, verwenden Sie den Unity-Profiler zur Erfassung Ihrer Daten. Dann können Sie die Daten mit der Schaltfläche „Pull Data (Daten abrufen)“ in die Profilanalyse laden. Sie können alternativ eine zuvor gespeicherte Erfassung laden.
Sobald Sie dies tun, beginnt sofort die Analyse, und die Daten werden in das Rahmenzeitdiagramm eingetragen. Beachten Sie die weißen und türkisfarbenen Balken in der Grafik. Die weißen Balken repräsentieren die Dauer der Frames und die türkisfarbenen Balken die aktuell ausgewählten Marker, sodass Sie sehen können, wie viel sie zur Dauer der Frames beitragen.
Sie können mithilfe von Filtern nach Ihren Markern suchen. Die Marker-Details werden automatisch aktualisiert, um die von Ihnen ausgewählte Teilmenge widerzuspiegeln, und in der Spalte mit der Anzahl können Sie sehen, wie oft sie auftreten. Das Rahmenzeitdiagramm hebt die Marker hervor. Wenn Sie einen Marker auswählen, aktualisiert sich auch die Marker-Zusammenfassung.
Repräsentative Frames finden
When analyzing performance, you want to make sure that the data you’re looking at is representative. If your data is noisy, it’s easy to ensure that you select an average frame by using the Frame Summary at the top right – just click on the Frame shown as the Median and the Profiler will display the relevant analysis. Or, in the frame time graph, you can right-click and select Select Median Frame.
You can also limit your analysis to a selection of frames. All of the statistics you see will be updated to reflect the specific selection.
Rather than rely on a single data point from a single frame, you can analyze multiple data points by selecting a group of representative frames. If you right-click on the frame time graph and Order by Frame Duration, you can then select a set of frames around the median frame for a representative sample that smooths out some of the noise in your data.
Die Auswirkungen der Änderung einer Projekteinstellung
Die Profilanalyse kann dabei helfen, den Leistungsunterschied bei der Anwendung einer projektweiten Einstellung wie der Aktivierung von Graphics Jobs zu ermitteln. Um diese Funktion zu verwenden, nehmen Sie eine Basislinienaufnahme und dann eine weitere Aufnahme, nachdem Sie Änderungen vorgenommen haben. Führen Sie Ihr Spiel aus, testen Sie es mit dem Unity-Profiler, bringen Sie diese Aufnahme in die Profilanalyse, und bringen Sie dann die zweite Aufnahme hinein.
Sie können die Ergebnisse der beiden Aufnahmen nebeneinander im Abschnitt der Frame-Zusammenfassung sehen.
Are you GPU-bound?
Um sicherzustellen, dass die Leistung keine Engpässe aufweist, überprüfen Sie den Marker „Gfx.WaitForPresent“. Sie finden ihn, indem Sie „Gfx.WaitForPresent“ in den Filterbereich eingeben. Wenn der Mittelwert dieses Markers ungleich Null ist, wartet die CPU darauf, dass die GPU ihre Aktivität beendet, bevor sie fortfahren kann.
Sie können sich diesen Marker im Rahmenzeitdiagramm ansehen, um zu sehen, wie viel sie zur Dauer der Frames beiträgt. Wenn die CPU auf den Grafikprozessor wartet, sind Sie höchstwahrscheinlich an den Grafikprozessor gebunden. Werfen Sie einen Blick auf die GPU-Profiling-Tools, um Optimierungen vorzunehmen.

Datensatzverwaltung
Sie können Ihre Daten vom oberen Hauptabschnitt des Profilanalyse-Fensters aus verwalten. Von hier aus können Sie den Unity-Profiler öffnen und Daten aus dem Unity-Profiler abrufen oder eine zuvor gespeicherte Datei laden (in jeder beliebigen Unity-Version).
Sobald die Daten geladen sind, können Sie sie im Rahmenzeitdiagramm sehen. Dabei handelt es sich um einen interaktiven Bereich, in dem Sie eine Reihe von Samples auswählen können. Alle zusammenfassenden Informationen in der Marker-Tabelle werden automatisch aktualisiert, um Ihre Auswahl widerzuspiegeln. Sie können auf erweiterte Optionen zugreifen, indem Sie mit der rechten Maustaste auf Ihre Auswahl klicken.
Klicken Sie auf die Schaltfläche „Save (Speichern)“, um Ihre Analysedaten als .pdata-Datei zu sichern. Beachten Sie, dass es zwei Speicherdateien gibt – eine Profilanalyse-Speicherdatei (PDATA) und eine Profiler-Speicherdatei (DATA oder RAW). Wir empfehlen, beide Dateien im selben Verzeichnis zu speichern.
Frame-Zusammenfassung
Die Frame-Zusammenfassung zeigt Markierungen zur Frame-Dauer am, einschließlich Minimum, Maximum und Median, mit Schaltflächen, mit denen Sie zu bestimmten Frames im Unity-Profiler springen können. Dieser Bereich zeigt Ihnen auch das Histogramm der Rahmenzeitverteilung und ein Box- und Whisker-Plot.

Marker-Tabelle
Marker-Details
In diesem Abschnitt finden Sie die Marker-Tabelle der Marker-Daten aus dem Unity-Profiler, einschließlich aller Stacktiefen. Die Unity-Profiler-Daten für alle Marker werden aggregiert, um den Median und andere Frame-Zeiten zu ermitteln, die ebenfalls in dieser Tabelle angezeigt werden.
Marker-Zusammenfassung
Der Marker-Zusammenfassungsbereich auf der rechten Seite enthält aggregierte Informationen über die ausgewählten Marker und ihren Beitrag zur Frame-Dauer. Diese Informationen werden auch visuell in einem Histogramm sowie in einem Box- und Whisker-Plot dargestellt.
Am Ende der Zusammenfassung finden Sie die Mindest- und Höchstzeiten für einzelne Marker-Instanzen innerhalb des aggregierten Datensatzes.

Filter
- Nach Name
Um Ihre Überprüfung auf Marker mit einem bestimmten Namen zu konzentrieren, können Sie eine Teilzeichenfolge oder eine Sammlung von Teilzeichenfolgen eingeben. Stellen Sie sicher, dass die Teilzeichenfolge in Anführungszeichen steht, wenn der Name Leerzeichen enthält.
Sie können die Marker ausschließen, an denen Sie nicht interessiert sind. Beispielsweise können Sie Marker ausschließen, die auf der Leerlaufzeit in Jobs basieren, oder Marker, die Teil vom Profiler selbst sind.
Sie können die Filter auffüllen, indem Sie mit der rechten Maustaste auf einen Marker von Interesse in der Tabelle klicken.
- Threads
Sie können wählen, ob Sie Daten für bestimmte Worker-Threads sehen möchten. Um sie alle zusammen zu sehen, aktivieren Sie „All (Alle)“ oben im Pop-up-Auswahlfenster für Threads.
- Tiefe
Wir empfehlen, sich mit Tiefe 3 zu befassen, da die meisten Unity-Subsysteme auf dieser Ebene über hochrangige Marker verfügen. Auf diese Weise sehen Sie den Beitrag von wichtigen Subsystemen wie Rendering, Animation und Physik. (Tiefe 3 ist für die jüngsten Veröffentlichungen von Unity geeignet. Bei älteren Versionen ist es vielleicht ratsam, zu einer anderen Tiefe zu wechseln.)
- Übergeordnetes
Um nach Übergeordnetem zu filtern, klicken Sie mit der rechten Maustaste auf den Marker in der Marker-Tabelle, und wählen Sie „Set as Parent Marker Filter (Als übergeordneter Marker-Filter festlegen)“ aus.
- Analysetyp
Standardmäßig zeigt Ihnen die Profilanalyse die Gesamtzeit für die Marker an, aber Sie können auch zu „Self“ wechseln. Diese Funktion ist hilfreich, wenn Sie die reine Zeitdauer im Einzelnen feststellen möchten.
- Einheiten
Die Standardeinheiten sind Millisekunden, aber für kleinere Zeitangaben können Sie auf Mikrosekunden umschalten.
Top-10-Marker
Die Top-10-Marker sind die Top-10 für die Filter, die Sie gesetzt haben. Am besten verwenden Sie dieses Tool, indem Sie den Hauptthread und die Gesamtzeit einschließlich untergeordneter Komponenten in Tiefe 3 auswählen, sodass Sie sich die Unity-Subsysteme ansehen. Dies zeigt Ihnen das Verhältnis der Beiträge für jedes dieser Schlüsselsysteme, wie z. B. Rendering versus Physik versus Animationszeit. Für weitere Berichte und Analysen können Sie mit der Maus über die Datenleiste fahren, um die genauen Prozentsätze und Metriken anzuzeigen.

Datensätze vergleichen
Oben im Fenster der Profilanalyse können Sie zur Registerkarte „Compare (Vergleichen)“ wechseln, um zwei Datensätze zur Analyse auszuwählen. Ein Datensatz wird in blau, der andere in orange dargestellt. Sie können sich alternativ dafür entscheiden, zwei Unterregionen eines einzigen Datensatzes zu vergleichen, um z. B. Ihre Median-Frames mit Ihren Ausreißer-Frames zu vergleichen.
Die Marker-Vergleichstabelle stellt die Daten visuell in blau und orange dar, sodass Sie schnell überprüfen können, welcher Ihrer beiden Datensätze in bestimmten Bereichen langsamer läuft.
Wenn die Markierung in einem der Scans fehlt, sehen Sie in dieser Spalte einen Strich. Dies kann passieren, wenn der Marker umbenannt wurde, z. B. wenn Sie verschiedene Unity-Versionen verwenden.
Daten exportieren
Denken Sie daran, dass Sie die Daten aus der Profilanalyse für eine individuellere Verarbeitung exportieren können. Sie können den Inhalt der Marker-Tabelle, das Rahmenzeitdiagramm oder einen Vergleich von Rahmenzeitdiagrammen exportieren.
Wenn Sie Fragen zur Profilanalyse, zum Profiler oder zur Verwendung der darin enthaltenen spezifischen Funktionen für Ihr Projekt haben, beteiligen Sie sich gern an der Diskussion in den Foren.