Trace ist ein strukturiertes Framework für die Verfolgung von Instrumentierungs-Events eines laufenden Prozesses. Die Module TraceLog und TraceAnalysis sind die Hauptmodule, die das Framework bilden. Der Unreal Trace Server läuft im Hintergrund als eine einzige Server Instanz und kann zwischen mehreren Projekten oder Verzweigungen gemeinsam genutzt werden. Das ist ein optimiertes Programm, das nur minimale Auswirkungen auf die Performance hat und keine Benutzeroberfläche umfasst.
Der Trace-Server wird automatisch durch den separaten Serverprozess gestartet, UnrealTraceServer.exe, der sich im Verzeichnis Engine/Binärdateien/Win64 befindet.
Der Trace-Server hat zwei Komponenten:
Der Trace Recorder hört auf Port 1981 auf eingehende Trace-Verbindungen und zeichnet den Trace-Stream auf.
Der Trace Store speichert die aufgezeichneten Traces als -Dateien in einem -Ordner. Er überwacht diesen Ordner auf Änderungen und stellt die Liste der verfügbaren Traces der Unreal Insights Benutzeroberfläche bereit.
Ein Beispiel für den Pfad zum Trace-Ordner:
C:/Users/<user>/AppData/Local/UnrealEngine/Common/UnrealTrace/Store/001/Unreal-Trace-Server
Unreal Editor-Builds starten automatisch den UnrealTraceServer.exe, wenn Sie eine Verbindung aus dem Unreal-Trace Sitzung herstellen. Der Unreal-Trace-Server läuft im Hintergrund als eine einzige Server Instanz und kann zwischen mehreren Projekten und Verzweigungen gemeinsam genutzt werden.
Sie können den Unreal Trace Server beenden, indem Sie auf den Task-Manager Ihres Systems zugreifen und zur Registerkarte Prozesse navigieren.
Der Unreal-Trace-Server läuft im Hintergrund als eine einzige Instanz, die nicht beendet werden muss, um eine neue Version zu starten. Sie kann Daten aus mehreren Quellen gleichzeitig Empfänger und aufzeichnen.
Aktuell unterstützen wir den Unreal Trace Server nur für einen Nutzer pro Rechner. Wenn mehrere Nutzer gleichzeitig angemeldet sind, werden Traces im Trace-Verzeichnis des ersten Nutzers gespeichert und sind daher für andere Nutzer unzugänglich.
Trace Insights-Widget
Das Trace Insights-Widget bietet eine Möglichkeit, Ihre Trace-Daten mithilfe einer Editor-Interface zu kontrollieren und zu verwalten. Sie können im Editor auf das Insights-Widget verfolgen zugreifen , indem Sie zur unteren Werkzeugleiste navigieren und auf die Schaltfläche Trace klicken.
Die folgenden Sektionen beschreiben die Einstellungen in jeder Kategorie des Trace-Menüs.
Trace Data
Die Kategorie Trace Daten bietet Einstellungen zu Datenkanälen, Trace-Lesezeichen, Trace-Screenshots und mehr.
Channels
Eine Trace kann große Datenmengen aufzeichnen. Sie können mithilfe von Trace-Kanälen festlegen, welchen Typ von Daten aufgezeichnet werden soll.
Kanäle steuern die Datenrate beim Tracing. Jeder Event-Typ ist an einen oder mehr Kanäle gebunden. Wenn die erforderlichen Kanäle nicht aktiviert sind, wird das Event nicht an den Trace Stream ausgegeben.
Kanalvoreinstellungen gruppieren Kanäle, um szenarienbasierte Einstiegspunkte zu bieten.
| Channel | Description |
|---|---|
Animation | Animation Insights Plugin. |
AssetLoadTime | Contains named CPU timers for |
AssetMetadata | Asset Names and Class Names as metadata for memory allocations. Requires Metadata channel. Used by Memalloc channel. |
Audio | Audio Insights Plugin. |
AudioMixer | AudioMixer Insights Plugin. |
Bookmark | Low-frequency markers to signify important transitions. Bookmarks provide a quick overview of features such as level loading or engine boot phases. |
Callstack | Callstack descriptions. Allows allocations to be associated with callstacks. |
ContextSwitch | Trace context switch events. On Windows, game or editor runtime should be run as administrator. |
Cook | Displays named CPU timers specific to cooking. This requires the CPU channel to be enabled. Cook will add the both the |
Counters | Generic counters. Traces float and integer values over time. Counters Trace API. It enables the CSV Profiler Trace. |
Cpu | Named CPU timers. Additional timers can be added by enabling the Stat Named Events channel from the Insights Widget or using the |
File | File I/O trace channel that contains Open, ReOpen, Read, Write, Close events. |
Frame | Game and Rendering frames. |
Gpu | Named GPU timers. Based on GpuProfiler data. |
LoadTime | Asset Loading Insights trace channel. Only works for runtime loading from the pak/iostore. |
Log | Logs Messages. |
MemAlloc | Memory allocations. Uses Module and Callstack. |
MemTag | Memory tag statistics. Traces snapshots of memory usage per tag at regular rate. Relies on LLM subsystem for tracing. Implies "-llm". Available after |
Messaging | UDP Messaging plugin. |
Metadata | Support for generic metadata scopes. |
Module | Module loading information. |
Net | Networking trace channel. |
Niagara | Niagara Plugin. |
Object | GameplayInsights/RewindDebugger plugin. |
Physics | |
RDG | RDG Insights Plugin. |
RHICommands | CPU or GPU named timers for RHI commands. |
RenderCommands | CPU or GPU named timers for commands executed on the rendering thread. |
SaveTime | Named CPU timers specific to package saving. |
Screenshot | Captures screenshots triggered with |
Slate | Slate Insights Plugin. |
StackSampling | Trace stack sampling events based on Event Tracing for Windows (ETW). |
Stats | Stats counters. Based on the Stats system. |
Task | Task Graph trace channel. |
VisualLogger | Visual Logger starts recording to file. |
Die folgenden Kanäle sind standardmäßig aktiviert:
Lesezeichen
CPU
Frame
GPU
Log
Region
Screenshot
Die Kanäle MemAlloc, MemTag und Module sind grau, da sie über den Befehl der Eingabeaufforderung ausgeführt werden müssen. Siehe Über die Eingabeaufforderung
Sie können Ihre eigenen Voreinstellungen mithilfe von Konfigurationsdateien definieren, die der Kategorie [Trace.ChannelPresets] hinzugefügt werden. Weitere Informationen dazu finden Sie im Trace Developer Guide.
Trace zum Screenshot erstellen
Trace Screenshot macht ein Bild des Viewports Ihres Projekts in diesem Frame und sendet es an den Trace. Trace-Screenshot ist standardmäßig über das Kanal Panel aktiviert.
Sie können einen Trace-Screenshot auf zwei Arten erstellen:
Klicken Sie in der unteren Werkzeugleiste auf Trace > Trace Screenshot.
Geben Sie in der Konsole den Befehl
trace.screenshotein.
Wenn Sie Trace Screenshot nutzen, zeigt die Zeitleiste Timing Insights eine vertikale Linie an, die einen Namen enthält, der basierend auf dem aktuellen Zeitstempel, Datum und Uhrzeit Ihres Screenshots generiert wurde.
Trace-Lesezeichen
Trace-Lesezeichen gibt ein Event TRACE_BOOKMARK() mit dem angegebenen String-Namen aus. Bei Verwendung des Editors generieren sowohl das Screenshot als auch das Lesezeichen-Event einen Namen, der auf dem aktuellen Zeitstempel im Format von Datum und Zeit basiert.
Sie können ein Trace-Lesezeichen auf zwei Arten setzen:
Klicken Sie in der unteren Werkzeugleiste auf Trace > Trace-Lesezeichen.
Geben Sie in der Konsole den Befehl
trace-bookmarkein.
Lesezeichen und Screenshots sind im Tab Timing Insights sichtbar. Sie finden sie im Markierungs-Track in der oberen Werkzeugleiste unter Lineal-Track. Lesezeichen sind in der Log-Ansicht verfügbar.
Statistik benannten Events
Statistik benannte Events bieten zusätzliche Profiling-Messwerte. Sie können sie einschalten oder deaktivieren, indem Sie auf das Statistik benannte Events-Kontrollkästchen klicken.
Trace-Ziel
In der Kategorie Trace Destination können Sie wählen, wo Ihre Trace-Daten gespeichert werden sollen.
| Option | Beschreibung |
|---|---|
Trace Store | Schreibt die Trace-Daten in eine Datei im verwalteten Trace-Store-Verzeichnis. |
Datei | Schreibt Trace-Daten direkt in die angegebene Datei. |
Tracing
Die Kategorie Trace enthält Einstellungen zum Starten und Beenden einer Aufzeichnung und zum Speichern von Trace-Schnappschüssen.
Aufnahme starten und stoppen
| Option | Beschreibung |
|---|---|
Trace starten | Startet eine Trace zum ausgewählten Trace Ziel. Sie können eine Trace über das Trace Insights Widget starten, indem Sie auf die Schaltfläche Trace starten klicken. |
Trace stoppen | Das Start-Trace-UI-Symbol wird rot angezeigt, wenn eine Trace gestartet wurde. Sie können die Aufzeichnung der Trace anhalten, indem Sie auf die Schaltfläche Trace stoppen klicken. |
Trace-Schnappschuss speichern
Es gibt zwei Möglichkeiten, einen Trace-Schnappschuss zu speichern:
Klicken Sie in der unteren Werkzeugleiste auf die Schaltfläche Trace-Schnappschuss speichern.
Klicken Sie in der unteren Werkzeugleiste auf Trace > Trace-Schnappschuss speichern.
Optionen
Die Kategorie Optionen steuert die Automatisierung, etwa das automatische Öffnen von Unreal Insights oder Zielordnern.
| Option | Beschreibung |
|---|---|
Live-Sitzung bei Trace-Start öffnen | Beim Start des Tracings wird die Live Sitzung automatisch in Unreal Insights geöffnet. Diese Option gilt nur beim Tracing im Trace Store. |
Insights nach Trace öffnen | Wenn das Tracing beendet wird oder ein Schnappschuss gespeichert wird, wird die aufgezeichnete Sitzung automatisch in Unreal Insights geöffnet. |
Nach Trace im Explorer angezeigt | Wird das Tracing angehalten oder ein Schnappschuss gespeichert, öffnet sich automatisch der Ordner mit der aufgezeichneten Sitzung. |
Standorte
Die Kategorie Speicherorte steuert, wo Traces (die in einer Datei und auf dem Trace-Server gespeichert wurden) gespeichert werden.
| Option | Beschreibung |
|---|---|
Trace Store-Verzeichnis öffnen | Der Speicherort, an dem auf dem Trace-Server gespeicherte Traces gespeichert werden. |
Profilerstellung-Verzeichnis öffnen | Öffnet das Profilerstellungsverzeichnis des aktuellen Projekts. Dies ist die Position, an der Traces in der Datei gespeichert werden. |
Insights
Die Kategorie Insights enthält Einstellungen, die Unreal Insights, Live-Sitzungen und aufgezeichnete Dateien öffnen.
| Option | Beschreibung |
|---|---|
Unreal Insights(Sitzungsbrowser) | Startet den Unreal Insights-Sitzungsbrowser. |
Live-Sitzung öffnen | Öffnet die aktuelle Live-Sitzung. Dies ist nur möglich, wenn die Trace zum Store geht. |
Neueste Traces | Öffnet die aktuellen Traces, die im Trace Store oder als Datei aufgezeichnet wurden. |
Trace-Status
Sie können Informationen zu Verbindung, Verwendeter Speicher, Cache für wichtige Events, Gesendete Daten, Aktiviert und Verfügbare Trace-Kanäle prüfen, indem Sie den Konsolenbefehl Trace.Status verwenden.
Führen Sie Insights über die Eingabeaufforderung aus
Befolgen Sie diese Schritte, um Unreal Insights über die Eingabeaufforderung auszuführen:
Navigieren Sie zu Ihrem Ordner
Engine\Binärdateien\Win64und doppelklicken Sie aufUnrealInsights.exe.Starten Sie die Eingabeaufforderung Ihres Systems und führen Sie Ihr Projekt aus. Ersetzen Sie im folgenden Beispiel den Installationspfad und Namen durch Ihren eigenen:
C++cd C:\[MyEngineInstallLocation]\ Samples\Games\Binaries\Win64\[YourProject].exe
Schwanzverfolgung
Schwanzverfolgung verfolgt Events über die letzten Sekunden (abhängig von der Buffergröße). Daher können alle Rechner, die in der Lage sein können, einen Durchlauf anzuzeigen.
Die Standardgröße des Buffers beträgt 4 MB. Wenn Sie diese Größe ändern oder deaktivieren möchten, können Sie den Konsolenbefehl -tracetailmb=x eingeben.
Wenn Sie X auf 0 MB setzen, wird die Buffergröße geändert.
Späte Verbindung
Wichtige Events werden auf dem Unreal Engine Client zwischengespeichert und dann während der Verbindung an die Rechner gesendet, die sich spätestens dann verbinden. So entgehen Ihnen einmalige Events (wichtige Events) nicht, bevor Sie eine Verbindung herstellen.
Insights kann remote laufende Unreal Engine-Instanzen anweisen, sich von ihrer lokalen Benutzeroberflächeninstanz mit den Remote Trace Servern zu verbinden, ohne den lokalen Rechner einbeziehen zu müssen.
Sie können die späte Verbindung initiieren, indem Sie zu Unreal Insights > Verbinden navigieren, oder indem Sie über die Editor-Konsole einen der folgenden Befehle oder Argumente eingeben:
"trace.send [ip]" / "trace.start [filename]"-trace.start [file] [channelSet] -tracehost=[ip]-tracefile = [filepath]
Unreal Insights hat ein dateibasiertes Caching-System, mit dem die Anwendung zusätzliche Informationen an eine Trace ankoppeln kann. Das kann genutzt werden, um zuvor berechnete Ergebnisse schneller abzurufen oder Daten zu speichern, die sonst verloren gehen würden (z. B. Symbole). Der Cache wird in einer .ucache -Datei neben der Trace-Datei gespeichert.
Trace-Nutzeranleitung
Sie können verschiedene Workflows zum Ausführen von Traces in Unreal Insights verwenden. Weitere Informationen finden Sie im Trace User Guide.
Trace-Entwicklerhandbuch
Sie können in Unreal Insights Ihre eigenen Traces entwickeln. Weitere Informationen dazu finden Sie im Trace Developer Guide.