Leistungsprobleme identifizieren

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

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

WerkzeugBeschreibungOrtTastenkombinationUmgebung
Entwickler-KonsoleEine 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.StudioF9Live-Sitzungen, Studio-Test
Mikro-ProfiliererEin 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-BarEine 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-DashboardEin 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 DashboardN/ALive-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:

  1. Ö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.
  2. 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.