Die Identifikation von Leistungsproblemen bedeutet im Allgemeinen, auf eine der drei Kategorien zu bohren: Bildrate (berechnen), Speicher oder Ladezeit.
Roblox hat eine Reihe von Werkzeugen zur Identifizierung von Leistungsproblemen, von denen einige im Roblox-Client (und damit in Studio) verfügbar sind und einige nur im Studio verfügbar sind. Während Sie direkt auf Client-Verhalten beobachten können, müssen Sie Werkzeuge verwenden, um Server-Probleme zu diagnostizieren.
Diagnosewerkzeuge
Werkzeug | Beschreibung | Ort | Tastenkombination | Umgebung |
Entwickler-Konsole | Eine Konsole mit Echtzeit-Log-Nachrichten, Fehlern und detaillierten Informationen über Speicher, Netzwerk und Erfüllung. Es ist nützlich zum Anzeigen der Speicher-Verbrauch, des Key-Server-Gesundheitsstatus und der Skript-Leistungsstatistik. Es ist nützlich zum Starten des Client oder Server MicroProfiler. | Studio | F9 | Live-Sitzungen, Studio-Test |
Mikro-Profilierer | Ein Debug-Werkzeug, das zeigt, wie viel Berechnungszeit für Aufgaben auf jedem Frame verbracht wird. Es kann Dumpf für die Analyse generieren, die eine genaue Analyse einzelner Frames zeigt, was hilfreich ist, um die spezifische Aufgabe zu identifizieren, die zu Leistungsproblemen führt. Du kannst den Profiler auf dem Client oder dem Server ausführen, abhängig von der Seite, die ein Problem hat. | In-Experience | Strg Alt F6 ( ⌘ 1> ⌥1> 3> F63> ) | Live-Sitzungen, Studio-Test |
Leistungsstatistik-Bar | Eine Toolbar mit grundlegenden Statistik, einschließlich der Erinnerungsverbrauch, der CPU, des GPUs, des Netzwerks gesendeter und empfangener Daten und der Ping-Zeit. | In-Experience | Strg AltF7 ( ⌘ 0> ⌥0> 2> F72> ) | Live-Sitzungen, Studio-Test |
Debug-Statistiken | Überlays mit detaillierten Informationen zu Grafik, Physik, Netzwerk-Traffic und Ego-Shooter. | In-Experience | Shift F1 , ShiftF2 , 1> Shift 1> 3> F4 3> , 6> Shift 6> 9> F59> | Live-Sitzungen, Studio-Test |
Leistungs-Dashboard | Ein Dashboard mit aggregierten Diagrammen für Client- und Server-Speicherverbrauch, bewerten, Server-Herzschlag und Crash-Rate in Echtzeit. Es ist hilfreich für die Analyse von Leistungsmustern im Laufe der Zeit. Siehe Leistungs-Monitoring-Tool. | Creator Dashboard | N/A | Live-Sitzungen |
Server-Compute
Der Server-Herzschlag ist auf 60 FPS für alle Erlebnisse begrenzt, so dass niedrigere Werte ein Leistungsproblem anzeigen können. Um den Server-Herzschlag zu überprüfen:
Mit der Entwickler-Konsole - Im Server-Jobs-Tab, erweitere die Herzschlag-Zeile und prüfe den 2> Schritte pro Sekunde2>-Wert, der das Herzschlag deines Erlebnisses repräsentiert.
Mit dem Server MicroProfiler - Schauen Sie sich die Länge jedes Frames an, um zu sehen, ob einige länger als 16,67 ms dauern.
Ein weiteres Anzeichen für degradierte Server-Herzschlag ist eine erhöhte Verzögerung (gewöhnlich als Ping bekannt). Je länger der Server braucht, um seine Aufgaben pro Frame abzuschließen, desto länger dauert es, bis das Netzwerk-Daten von Clients empfangen und verarbeitet werden. Um die durchschnittliche Ping für alle Spieler, die an einem Server verbunden sind, zu überprüfen, gehen Sie auf die Server-Statistik-Registerkarte in der Ent
Client-Computer
Die Standard-Client-Framerate-Grenze beträgt 60 Ego-Shooter. Benutzer können jedoch ihre Framerate-Grenze um 240 Ego-Shootererhöhen.
Die Bildrate unterscheidet sich wild zwischen Geräten. Zum Beispiel kann ein hochwertiger PC eine "Brute-Kraft" auf eine berechenungsnahe Problematik erzwingen und nur einen unauffälligen Bildrate-Ausfall erleiden. Wenn Sie auf niedrigeren Geräten testen, neigen Probleme dazu, schwerwiegender zu sein und somit leichter zu bemerken.
Um die Bildrate deines Erlebnisses zu überprüfen:
In dem Client, drücken Sie ShiftF5, um die Zusammenfassunganzuzeigen.
In der Studio- Ansicht -Registerkarte wählen Sie Statistiken > Zusammenfassung >, um Statistiken zum Debug zu aktivieren.
Mit dem MicroProfiler können Sie den Graphikcheck durchführen, um zu sehen, ob der Frame länger als 16,67 ms dauert.
Speicher
Es gibt mehrere Möglichkeiten, die Speicherverwendung für ein Erlebnis zu überprüfen:
- Öffnen Sie die Entwickler-Konsole und wechseln Sie zur Speicher-Registerkarte. Diese Registerkarte gibt eine Darstellung darüber, wie der Speicher verwaltet wird. Verwenden Sie den Client, nicht Studio, für die genauesten Lesungen.
- Aktivieren Sie die Leistungsstatistik Ansicht aus dem Einstellungsmenü im Client, um eine Overlay mit der Gesamtspeicherverwendung des Clients zu sehen.
Hohe Erinnerungsverwendung ist nicht unbedingt auf ein Problem hinweisend, aber einige Indikationen, dass Sie mehr untersuchen müssen, sind:
- Ein erheblicher Prozentsatz der Client-Crashs, die im Leistungs-Dashboard angezeigt werden, insbesondere ein plötzlicher Uptick, der mit einem Update übereinstimmt. Einige der Crashs werden erwartet, aber Sie sollten untersuchen, ob Ihre Crash-Rate über 2-3% steigt.
- Ein Crash tritt auf, während Sie auf einem Gerät testen, auf dem Sie Ihr Erlebnis Supportmöchten.
- Ihre Server-Speicherverbrauch übersteigt 3 GB.
Ein großer Teil der Erinnerungsverbrauchsrate auf dem Erlebnisstammt von Assets, wie Bildern und Meshes, die in die Grafikspeicher geladen wurden, damit sie gerendert werden können. In der Entwickler-Konsole können Sie die Grafikspeicher-Verbrauchsrate der Assets unter den folgenden Labels anzeigen:
- GraphicsMeshParts - Grafikspeicher, der von Meshes verbraucht wird.
- GraphicsTexture - Texturen werden von der Grafikspeicherung verbraucht.
Ladezeiten
Es gibt keine integrierten Werkzeuge zum Überprüfen der Ladezeiten, aber da sie keine Millisekunden-Präzision erfordern, ist ein Stopwatch normalerweise alles, was Sie brauchen, um Ihre aktuelle Basis zu verstehen und zu überprüfen, ob Sie einen substanziellen Fortschritt gemacht haben. Sie können ein Client-Skript in ReplicatedFirst verwenden, um einige Verständnis darüber zu erhalten, wie sich Ihre Änderungen auf die Lade
local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- vier zeichen
print("Game loaded in " .. roundedLoadTime .. " seconds.")
print("Number of instances loaded: " .. #game.Workspace:GetDescendants())
end)
Für zusätzliche Informationen aktivieren Sie Studio-Einstellungen > Netzwerk > Druck-Join-Size-Breakdown , der die obersten 20 Instanzen nach Größe und einem Prozentsatz pro Instanztyp druckt, wenn Sie die Erfahrung in Studio starten.