Leistungsprobleme identifizieren

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

Leistungsprobleme zu identifizieren bedeutet in der Regel, sich auf eine von drei Kategorien zu konzentrieren: Bildrate (Berechnung), Speicher oder Ladezeit.

Roblox verfügt über eine Reihe von Tools zur Identifizierung von Leistungsproblemen, von denen einige im Roblox-Client (und damit im Studio) verfügbar sind und einige nur im Studio verfügbar sind. Während Sie das Verhalten des Clients direkt beobachten können, müssen Sie Tools verwenden, um Serverprobleme zu diagnostizieren.

Diagnosetools

ToolBeschreibungStandortTastenkombinationUmgebung
EntwicklerkonsoleEine Konsole mit Echtzeit-Protokollnachrichten, Fehlern und detaillierten Informationen zu Speicher, Netzwerk und Skriptleistung. Sie ist nützlich, um den Speicherverbrauch, wichtige Servergesundheitsstatistiken, Skriptleistungsstatistiken anzuzeigen und um den Client oder Server MicroProfiler zu starten.
Studio

Im Spiel
F9
Studio-Tests

Live-Sitzungen
MicroProfilerEin Debugging-Tool, das aufschlüsselt, wie viel Rechenzeit für Aufgaben in jedem Frame aufgewendet wird. Es kann Dumps zur Analyse erstellen, die eine präzise Aufschlüsselung einzelner Frames zeigen, was hilfreich ist, um die spezifische Aufgabe zu identifizieren, die Leistungsprobleme verursacht. Sie können den Profiler entweder auf dem Client oder dem Server ausführen, je nachdem, welche Seite ein Problem hat.
Studio

Im Spiel
StrgAltF6 (⌘⌥F6)
Studio-Tests

Live-Sitzungen
SzenenanalyseStellt auf einen Blick vergleichende Informationen über die Ressourcen bereit, die Ihre Client- und Server-Szenen verwenden, und welche Instanzen für diese Ressourcennutzung verantwortlich sind.StudioN/A
Studio-Tests
LeistungsstatistikenEine Symbolleiste mit grundlegenden Leistungsstatistiken, einschließlich Speicherverbrauch, CPU, GPU, gesendeten und empfangenen Netzwerkdaten und Ping-Zeit.
Im Spiel
StrgAltF7 (⌘⌥F7)
Studio-Tests

Live-Sitzungen
Debug-StatistikenÜberlagerungen mit detaillierten Informationen zu Grafiken, Physik, Netzwerkverkehr und FPS.
Studio

Im Spiel
UmschaltStrgF1 (Umschalt⌘F1), UmschaltStrgF2 (Umschalt⌘F2), UmschaltStrgF3 (Umschalt⌘F3), UmschaltStrgF4 (Umschalt⌘F4), UmschaltStrgF5 (Umschalt⌘F5)
Studio-Tests

Live-Sitzungen
NetzwerksimulationEigenschaften, die reale Netzwerkbedingungen wie Latenz, Jitter und Paketverlust simulieren, um Verbindungen zu testen.
Studio
AltS(⌥S)
Studio-Tests
Leistungs-DashboardEin Dashboard mit aggregierten Diagrammen für den Speicherverbrauch von Client und Server, die Bildrate des Clients, den Server-Herzschlag und die Absturzraten in Echtzeit. Es ist hilfreich, um Leistungsdaten im Zeitverlauf zu analysieren. Siehe Leistung überwachen.
Creator Dashboard
N/A
Live-Sitzungen

Serverberechnung

Der Server-Herzschlag ist für alle Spiele auf 60 FPS begrenzt, sodass niedrigere Werte auf ein Leistungsproblem hinweisen könnten. Um den Server-Herzschlag zu überprüfen:

  • Mit der Entwicklerkonsole - Im Tab Serverjobs erweitern Sie die Zeile Herzschlag und überprüfen den Wert Steps Per Sec, der den Herzschlag Ihres Spiels darstellt.

  • Mit dem MicroProfiler können Sie das Diagramm überprüfen, um zu sehen, ob der Frame länger als 16,67 ms benötigt.

Ein weiteres Symptom eines verschlechterten Server-Herzschlags ist eine erhöhte Latenz (allgemein bekannt als Ping). Je länger der Server benötigt, um seine Aufgaben in jedem Frame zu berechnen, desto länger dauert es, Netzwerkdaten zu verarbeiten, die von Clients gesendet und empfangen werden. Um den durchschnittlichen Ping für alle Spieler, die mit einem Server verbunden sind, zu überprüfen, gehen Sie zum Tab Serverstatistiken in der Entwicklerkonsole.

Wenn der Server-Herzschlag niedrig bleibt, nachdem Sie die Leistung verbessert haben, benötigt Ihr Spiel möglicherweise mehr CPU, als seine Server standardmäßig erhalten. Sie können mehr mit Erweiterten Diensten für Berechnungen reservieren.

Clientberechnung

Die standardmäßige Bildratenobergrenze für den Client beträgt 60 FPS. Benutzer können jedoch ihre Bildratenobergrenze auf bis zu 240 FPS unter Windows erhöhen.

Die Bildrate variiert stark zwischen den Geräten. Ein High-End-PC kann beispielsweise ein Rechenproblem "bruteforcen" und nur einen nicht wahrnehmbaren Rückgang der Bildrate erleben. Wenn Sie auf Geräten mit niedrigerer Leistung testen, sind die Probleme tendenziell schwerwiegender und daher leichter zu erkennen.

Um die Bildrate Ihres Spiels zu überprüfen:

  • Drücken Sie im Client UmschaltF5, um die Zusammenfassung der Debugstatistiken anzuzeigen.

  • Aktivieren Sie im Menü Fenster ⟩ Leistung die Statistiken, um die Debugstatistiken zu aktivieren.

  • Mit dem MicroProfiler können Sie das Diagramm überprüfen, um zu sehen, ob der Frame länger als 16,67 ms benötigt.

Serverspeicher

Versuchen Sie, die Speichernutzung des Servers unter 50 % zu halten. Der gesamte Serverspeicher verwendet die folgende Formel:

6,25 GiB + (100 MiB * größte_Anzahl_von_verbundenen_Spielern)

Ein Beispiel: Ein Server mit 30 verbundenen Spielern hat ungefähr 9,18 GiB Gesamtspeicher. Server gewinnen Speicher, wenn Spieler sich verbinden, verlieren ihn jedoch nicht, wenn Spieler sich trennen. Wenn 10 Spieler gehen, hat der Server immer noch 9,18 GiB Speicher, anstatt auf 8,2 GiB zu schrumpfen.

Wenn Server heruntergefahren werden (zum Beispiel, wenn sie leer sind oder im Rahmen des Aktualisierungsprozesses), beginnen ihre Ersatzserver mit der Basismenge an Speicher und beginnen, sich zu skalieren, wenn Spieler sich verbinden.

Clientspeicher

Es gibt mehrere Möglichkeiten, die Speichernutzung für ein Spiel zu überprüfen:

  1. Öffnen Sie die Entwicklerkonsole und wechseln Sie zum Tab Speicher. Dieser Tab gibt eine Aufschlüsselung, wie der Speicher zugewiesen wird. Verwenden Sie den Client anstelle des Studios, um die genauesten Ausgaben zu erhalten.
  2. Aktivieren Sie die Ansicht Leistungsstatistiken im Einstellungsmenü im Client, um eine Überlagerung mit der gesamten Speichernutzung des Clients zu sehen.

Hohe Speichernutzung ist nicht unbedingt ein Indikator für ein Problem, aber einige Hinweise, dass Sie möglicherweise weiter untersuchen müssen, sind:

  • Ein erheblicher Prozentsatz der Client-Abstürze, die im Leistungs-Dashboard angezeigt werden, insbesondere ein plötzlicher Anstieg, der mit einem Update zusammenfällt. Eine bestimmte Anzahl von Abstürzen ist zu erwarten, aber Sie sollten untersuchen, ob Ihre Absturzraten über 2-3 % steigen.
  • Ein Absturz tritt auf, während Sie auf einem Gerät testen, das Sie unterstützen möchten.

Ein erheblicher Teil des Speicherverbrauchs eines Spiels auf dem Client stammt von Assets, wie Bildern, Meshes und Audiodateien, die in den Speicher geladen werden. Überprüfen Sie in der Entwicklerkonsole die folgenden Bezeichnungen unter PlaceMemory:

  • GraphicsMeshParts - Grafikspeicher, der von Meshes verbraucht wird.
  • GraphicsTexture - Grafikspeicher, der von Texturen verbraucht wird.
  • Sounds - Speicher, der von Audiodateien verbraucht wird.

Ladezeiten

Die Ladezeit, auch als Beitrittszeit bezeichnet, ist die gesamte Zeit vom Klick eines Spielers auf Spielen bis zur Anzeige der Welt und dem Beginn des Spiels. Nachdem der Client mit einem Server verbunden ist, erfolgt der Beitritt in der folgenden Reihenfolge:

  1. ReplicatedFirst wird an den Client repliziert, und jeder benutzerdefinierte Ladebildschirm darin erscheint.
  2. Der Rest des Datenmodells wird repliziert, einschließlich allem in ReplicatedStorage und Workspace. Wenn Sie Instanz-Streaming aktivieren, wird in dieser Phase nur der Bereich von Workspace, der sich in der Nähe des Spawnpunkts des Spielers befindet, repliziert.
  3. Der Avatar des Spielers wird geladen. Die Ladezeit endet, wenn der Ladebildschirm verschwindet und die Welt zu rendern beginnt.

Zu wissen, welcher Schritt langsam ist, hilft Ihnen, die Optimierungen mit der größten Auswirkung auszuwählen. Für häufige Ursachen und Lösungen siehe Leistung verbessern.

Es gibt keine integrierten Tools zur Überprüfung der Ladezeiten, aber da sie keine Millisekunden-genaue Präzision erfordern, ist eine Stoppuhr normalerweise alles, was Sie benötigen, um Ihre aktuelle Basislinie zu verstehen und zu überprüfen, ob Sie eine wesentliche Verbesserung erzielt haben. Sie können ein Clientskript in ReplicatedFirst verwenden, um ein Gefühl dafür zu bekommen, wie sich Ihre Änderungen auf die Ladezeiten auswirken, aber dieses Skript bietet keine vollständige, End-to-End-Messung. Es beginnt mit dem Timing, nachdem ReplicatedFirst repliziert wurde, und stoppt, wenn die anfängliche Replikation abgeschlossen ist und DataModel.Loaded ausgelöst wird, sodass es die Zeit für die Verbindung zu einem Server oder das Laden des Avatars nicht umfasst:

local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- vier Dezimalstellen
print("Spiel in " .. roundedLoadTime .. " Sekunden geladen.")
print("Anzahl der geladenen Instanzen: " .. #workspace:GetDescendants())
end)

Für zusätzliche Einblicke aktivieren Sie Print Join Size Breakdown im Netzwerk-Tab der Studio-Einstellungen, um die 20 größten Instanzen nach Größe und eine prozentuale Aufschlüsselung nach Instanztyp zu drucken, wenn Sie das Spiel im Studio starten.

Wenn Ihre Ladezeit im Vergleich zur scheinbaren Größe Ihres Spiels unerwartet hoch ist, überprüfen Sie Ihren Ort auf nicht erkannte oder obfuskierte Skripte. Einige kostenlose Modelle aus dem Creator Store enthalten Skripte, die Tausende von zusätzlichen Instanzen generieren, was die Menge an Daten, die repliziert werden müssen, wenn ein Spieler beitritt, dramatisch erhöht.

Messen Sie die Ladezeit vor und nach jeder Optimierung oder Aktualisierung, damit Sie deren Auswirkungen bestätigen und Rückschritte erkennen können. Ein plötzlicher Anstieg bedeutet oft, dass Inhalte kürzlich zu ReplicatedStorage hinzugefügt wurden oder dass eine Assetänderung die Downloadgröße erhöht hat.

Ping

Die beiden Hauptmessungen des Pings (Latenz) sind Netzwerk-Ping und Daten-Ping.

Netzwerk-Ping ist die Hin- und Rückreisezeit, die gemessen wird, wenn der Client ein Netzwerkdatenpaket sendet, bis er die Echoantwort des Servers erhält. Es ist ähnlich dem, was von dem allgemeinen Ping-Netzwerkdienstprogramm als time gemeldet werden würde.

Netzwerk-Ping ist in der Leistungsstatistiken-Leiste sichtbar. Er wird hauptsächlich von der Länge des Netzwerkpfads zwischen Client und Server beeinflusst und liegt außerhalb Ihrer Kontrolle. Sie können jedoch Ping und andere Netzwerkbedingungen mit Netzwerksimulation simulieren, wenn Sie im Studio testen.

Daten-Ping ist die Hin- und Rückreisezeit, die gemessen wird, wenn der Client Daten zuverlässig durch das Replikationssystem sendet, bis er eine Echoantwort vom Replikationssystem des Servers erhält. Er umfasst die Zeit, die sowohl in den Replikationswarteschlangen des Clients als auch des Servers verbracht wird, sowie TCP-ähnliche Übertragungen verlorener oder beschädigter Pakete.

Daten-Ping ist ähnlich dem Senden eines zuverlässigen Remote-Events vom Client, dem Empfang auf dem Server und dem anschließenden Senden eines zuverlässigen Remote-Events vom Server an den Client als Antwort. Da der Daten-Ping auch die Zeit umfasst, die im Netzwerk zwischen Client und Server verbracht wird, ist er größer oder gleich dem Netzwerk-Ping.

Der durchschnittliche Daten-Ping für alle Spieler, die mit einem Server verbunden sind, ist im Tab Serverstatistiken der Entwicklerkonsole sichtbar. Der Daten-Ping für einen einzelnen Client ist sichtbar, indem Sie UmschaltF3 drücken, um die Netzwerk-Debugstatistiken anzuzeigen.

Daten-Ping wird sowohl durch den Netzwerkpfad als auch durch Verzögerungen bei der Replikationswarteschlange beeinflusst. Wenn der Server Replikationsdaten schneller generiert, als das Netzwerk sie senden kann (oder schneller, als der Client sie verarbeiten kann), muss der Datenverkehr in den Replikationswarteschlangen warten. Ein gewisser Unterschied zwischen Daten-Ping und Netzwerk-Ping ist normal, bedingt durch Netzwerkübertragungen und die Art und Weise, wie Netzwerkdaten von der Roblox-App verarbeitet werden. Wenn der Daten-Ping jedoch deutlich höher ist als der Netzwerk-Ping, verwenden Sie den MicroProfiler, um den Netzwerkverkehr anzuzeigen. Für Optimierungsvorschläge siehe Netzwerk und Replikation.

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.