Tag-Referenz

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

Das Folgende ist eine Liste der häufigen Tags im MicroProfiler, gruppiert nach Kategorie.Das Verstehen dieser Tags kann dir helfen, problematischen Code in deiner Erlebniszu identifizieren.Die Tabellen enthalten ein Beschriftung, Beschreibungen und Leistungstipps zur Verbesserung der Leistung und zur Optimierung Ihrer Erlebnis.

Schlafen

Wenn Threads keine aktiven Aufgaben ausführen, treten sie in einen Schlafzustand ein, mit Tags, die anzeigen, wie lange der Thread geschlafen hat.Zu jeder Zeit ist es äußerst üblich, dass die meisten Arbeiter Threads in einem Schlafzustand sind.

AI/Navigierung

BezeichnungBeschreibungLeistungstipps
Rasterisieren von KachelAktualisiert Navigationsfliesen, die für eine Anfrageerforderlich sind, üblicherweise gefolgt von computePath, der verlangt, dass diese Fliesen aktuell sind.Folgt der NavigationJob/Vorverarbeitung auf dem Haupt Thread.Reduzieren Sie die Anzahl der Wegfindungsfliesen-Ungültigkeiten, da dies dazu führt, dass diese Wege neu berechnet werden müssen. Dies wird verursacht durch die Bewegung nicht navigierbarer Teile.
computePath

Berechnet Pfade, typischerweise nach rasterizeTile.

Reduziere die Anzahl und die Weltgrenzen von ComputePath Anrufen.Versuche, Wege für mehrere Agenten wiederzuverwenden, wenn sie von ungefähr ähnlichen Orten aus starten/enden sollen.
Vorverarbeitung/getPrimitivesOverlappingSammelt die Weltgeometrie für jede Suchtilie und plant die Rasterisierungsaufgaben, die vom Such Threadausgeführt werden sollen.Reduzieren Sie die Teileanzahl.

Animierung

BezeichnungBeschreibungLeistungstipps
Simulation/gameSteppedVerarbeitung von spezifischen Spielobjekten wie Humanoids , Animations und Herzschlag-Callbacks
Simulation/gameStepped/SteplägigkeitHumanoid Zustandsänderungen und movement.Called stepHumanoid auf dem Server jetzt (parallele Version)Deaktiviere oder reduziere Humanoid Zustände auf NPCs, wenn du sie hast.Ladder-Zustand ist am wichtigsten, um zu deaktivieren.Reduziere Rückrufe auf Zustandsänderungen wie Humanoid.Died oder Humanoid.Running
Simulation/gameStepped/SchrittanimationAnimators wird sich in derzeit ablaufenden animationen vorstoßen.Reduzieren Sie die Menge von Animators oder animierten Gelenken, um die Belastung dieser Schritt zu senken.Reduziere die Anzahl von Rückrufen auf Animationsereignisse wie AnimationTrack.KeyframeReached oder AnimationTrack.Ended
Simulation/gameStepped/RunService.SteppedFührt Funktionen aus, die mit dem Ereignis RunService.Stepped verbunden sind.Reduzieren Sie die Menge oder die Belastung von Funktionen, die mit diesem Ereignis verbunden sind.Betrachte die Verzögerung oder den Ersatz teurer Berechnungen.Betrachten Sie die Verteilung der Berechnung über mehrere Frames.

Audiodaten

BezeichnungBeschreibungLeistungstipps
KlangAudiodateienverarbeiten: Orte, Effekte, Lautstärken usw.
EntwicklerTag_SoundsIn-Memory-Geräusche: Im Allgemeinen kurze Geräusche, die klein genug sind, um in den Speicher zu gehen. Normalerweise kurze One-Shot-FX, keine längeren Musikformen.Verwende weniger kurze Geräusche.
EntwicklerTag_StreamingSoundsstream/StreamingSounds: Dies sind größere Sounds, die von der Festplatte gestreamt werden. Im Allgemeinen längere Musikdateien.Verwende weniger lange Sounds.

Netzwerke

BezeichnungBeschreibungLeistungstipps
Netzwerk-PaketempfangEmpfängt Netzwerkpakete. Wenn viele Objekte oder Ereignisse repliziert werden, dauert dieser Schritt länger.Repliziere weniger Objekte oder Ereignisse.
Replikator/ProzesspaketeVerarbeitet Inhalte von Netzwerkpaketen, wie Bewegung, Ereignisanrufe und Änderungen von Eigenschaften.Reduziere die Anzahl oder Größe der zu replizierenden Objekte oder tu dies in schrittweisen Schritten.Kann zunehmen, wenn die Kartengröße zunimmt, da größere Karten tendieren, mehr insgesamt Aktivität zu haben.
Bandbreite zuweisen und Sender/Dispatch-Physik-Sender und TouchSender ausführenSendet Daten über Aktivitäten im Erlebnis.Reduziere die Menge bewegender Objekte und/oder Berührungen. Siehe folgende Abschnitte.
Bandbreite zuweisen und Sender/Dispatch Streamjob ausführenSendet entsprechende spezifische Regionen an bestimmte Clients im "Streaming"Funktion.Reduziere den minimalen und Ziel-Streaming-Radius.
Bandbreite zuweisen und Sender/Dispatch-Datensender ausführenSendet Eigenschaftsänderungen, Remote-Ereignisse, Humanoid-Zustandsänderungen, Animationen starten/stoppen.Reduziere die Anzahl der wiederholten Änderungen am Modell
Replikator-Send clusterSendet Geländedaten an Clients.Reduziere die Menge oder Größe der Geländeveränderungen.
Modellvollständigkeit Mega-JobNur Server: Vollständigkeit ist ein internes Konzept. Wenn Modelle vollständig gesendet werden, werden Modellvollständigkeitsereignisse SatzFüge oder entferne weniger Instanzen hinzu.
DeserialisierungspaketNetzwerkpaketverarbeitung auf niedriger Ebene. Bereitet Replicator-Prozesspakete vor.Sende weniger Updates.

Renderung

BezeichnungBeschreibungLeistungsnotizen
VorbereitenInformationen werden vom Haupt thread gesammelt und aktualisieren verschiedene Datenstrukturen, die für die Rendering verwendet werden.Dies blockiert die Simulations Threads, so sollte es so klein wie möglich sein.Siehe Vorbereiten von Etiketten unten.
Vorbereiten/Pass3dAdornRenderung verschiedener Objektverzierte, wie Textetiketten über Objekten. Dieser Schritt kann Raycasting beinhalten, um zu bestimmen, ob solche Objekte sichtbar sind.Reduziere die Anzahl der sichtbaren dekorierten Objekte, wie BillboardGuis , Humanoid Namens-/Gesundheits-Etiketten usw.
Vorbereiten/Pass2dBereitet 2D-UI-Renderung vor (sowohl Spieler als auch Roblox-UI).Reduziere die Menge oder Komplexität von UI-Elementen.
Vorbereiten/AktualisierenVorbereiten/aktualisierenUnzulässige TeileAktualisiert Teile, die Eigenschaften geändert oder hinzugefügt wurden.Reduziere die Anzahl der Eigenschaftsänderungen auf der Welt. Wenn ein Skript eine große Anzahl von Objekt-Eigenschaften aktualisiert, zerbrich es über mehrere Frames.
Vorbereiten/AktualisierenVorbereiten/aktualisierenUnzulässige Schnelle ClusterBereitet Geometrie vor, typischerweise "FastClusters", die verwendet werden, um Humanoids zu rendern. Untermarkierungen geben die Anzahl der Teile, Kanten und Größe der Kanten an.Reduziere die Verwendung von "Humanoiden" unter Objekten, die nicht Humanoids sind.Dies sollte nicht verwendet werden, um Draw-Aufrufe zu verkürzen, da FastClusters viel mehr Speicher verbrauchen.
Vorbereiten/AktualisierenVorbereiten/aktualisierenDynamische TeileAktualisiert Positionen für Humanoids , Fahrzeuge und andere bewegliche Instanzen für die Rendering.Reduziere die Anzahl oder das Ausmaß der Bewegung von Humanoids oder sichtbaren Fahrzeugen.Das Kombinieren von Teilen desselben Materials und Farben in eine Union oder MeshPart kann hier helfen.
Vorbereiten/AktualisierenVorbereiten/aktualisierenInstanzierte ClusterBereitet statische Geometrie vor, die instanzielle Rendering verwendet (Teile und Mesh-Teile). Labels "Cluster" und "Instanzen" zeigen die aktualisierte Anzahl an.Verwende insgesamt weniger Netz und Materialvariation. Du kannst auch Cluster erstellen, indem du Objekte verwendest, die ähnliche Aussehen haben - Größe, Farbe, Material.
AusführenWenn aktuelle Renderbefehle erstellt und ausgegeben werden.Siehe Perform-Etiketten unten.
Ausführen/FillGuiVerticesUI-Renderung. Füllt Buffers mit UI-Kanten für Schmuck. Das "Gui count"-Label zeigt die Anzahl der Elemente in der Renderer-Liste an.Wenn die Kosten hoch sind, reduzieren Sie die Menge der UI, die aktualisiert wird, indem Sie sie deaktivieren, wenn sie nicht verwendet wird, indem sie korrekt versteckt wird.
Ausführen/Szene/queryFrustumOrderedWendet Frustum-Auslese an, damit Objekte, die nicht sichtbar sind, nicht gerendert werden.Wenn es eine hohe Kosten gibt, bedeutet das, dass es viele Elemente gibt.Vielleicht verwende einige größere Meshes, in denen ein einzelnes Mesh mehr Details aufweist als viele kleine Einzelteile.
Ausführen/Szene/ computeLightingPerformBerechnung der Beleuchtung in der Nähe der Kamera.Manipuliere die Anzahl der Lichtquellen oder bewege die Kamera weniger, um die Zeit zu reduzieren, die für die Berechnung der Beleuchtung benötigt wird.
Ausführen/Szene/ computeLightingPerform/LightGridCPUAktualisiert die Voxel-Beleuchtung, die in Voxel- und ShadowMap-Modi und bei Qualitätsstufen unter 4 in Future-Modus verwendet wird.Wenn das Aktualisieren der Chunk-Belegung zu lange dauert, erwägen Sie, eine geringere Auflösungsgeometrie zu verwenden, die Anzahl der Teile zu reduzieren oder Teile zu verankern.Wenn die anderen Untermarkierungen zu lange dauern, erwägen Sie, die Anzahl der Lichter zu reduzieren und nicht-schattenwerfende Geometrie für Objekte zu verwenden, die sich bewegen und die Besetzung ungültig machen.
Ausführen/Szene/ computeLightingPerform/SchattenkarteSystemAktualisiert Schattenkarten. Wird nicht auf Qualitätsniveaus unter 4 durchgeführt oder wenn Lighting.Technology auf Voxel festgelegt ist.Wenn die Beleuchtung auf Future eingestellt ist, senke sie auf ShadowMap oder reduziere die Anzahl der Lichter.Du kannst auch Light.Shadows und BasePart.CastShadows verwenden, um das Schattenwerfen auf weniger wichtige Instanzen zu deaktivieren.Siehe Leistung verbessern .
Ausführen/Szene/Glanz, Farbenkorrektion, MSAA, SSAO und SSAOApplyPostbearbeitungsrendering.Reduzieren Sie die Anzahl der Post-Processing-Effekte. Normalerweise ist dies nicht signifikant.
Ausführen/Szene/UIUI-Renderung. In Id_Screen gibt es ein Label mit der Anzahl der verwendeten Batches, Materialien und Dreieck.Reduzieren Sie die Anzahl der sichtbaren UI-Elemente. Die Verwendung von CanvasGroups kann auf Kosten der erhöhten Speicherverwendung helfen.
Führen/Szene/UpdateView/updateParticles, updateParticleBoundingsAktualisieren Sie die Partikelposition und die Grenzen.Reduzieren Sie die Anzahl von ParticleEmitters , Emissionsraten, Lebenszeiten usw. Beschränken Sie die Bewegung von Emittenten.
Id_OpaqueTeile in der Szene mit einem Transparenzwert von 0.
Id_TransparentTeile in der Szene mit einem Transparenzwert anderen als 0.Reduziere die Verwendung partieller Transparenz (Werte außer 0 und 1).
Id_DecalBilder in der Szene.
Ausführen/PräsentierenWartet, bis die GPU den vorherigen Frame fertiggerendert hat; sendet tatsächlich Renderbefehle an die GPU; kümmert sich um niedrigstufige Grafikressourcen.Reduzieren Sie die Komplexität der Szene im Allgemeinen. Wenn dieser Schritt lange dauert, sind Sie möglicherweise durch die GPU begrenzt.
Ausführen/Präsentieren/warten, bis abgeschlossenWartet, bis die GPU den vorherigen Frame fertig gerendert hat.Wenn das im Allgemeinen viel passiert, ist die Menge der gerenderten Dinge zu hoch.FRM hilft bei der Ausgleichung, aber wenn es hoch bleibt, versuche, weniger Details zu verwenden.

Skripte

BezeichnungBeschreibungLeistungstipps
Render/PreRender/fireBindToRenderSteppedCallbacksAusführung von Funktionen, die an Render-Schritt gebunden sind, über RunService:BindToRenderStep() .Stellen Sie sicher, dass Funktionen in Skripten, die RunService:BindToRenderStep() verwenden, so wenig Arbeit wie möglich erledigen.
Render/PreRender/Laufservice.RenderSteppedFührt Funktionen aus, die mit dem Ereignis RunService.RenderStepped verbunden sind.Ähnlich wie BindToRenderStep, stellen Sie sicher, dass Funktionen, die diese Ereignis verwenden, so wenig Arbeit wie möglich erledigen.
Wartende Hybrid-Skript-JobFührt Skripte fort, die auf die Verwendung von wait. Frames warten.Dieser Schritt hat ein Ausführungsbudget für die Laufzeit, um wartende Skripte auszuführen, also wenn Sie zu viele wartende Skripte oder Skripte mit einer langen Laufzeit haben, bevor Sie aufgeben, kann dieser Schritt mehrere
LuaGCLuau-Abfallsammlungszyklus. Label gibt Schätzungen der Speicherzuweisung und wie viel deallocated wurde.Pool lua-Tabellen und andere sammelbare Objekte oder versuchen, die Erstellung von temporären Tabellen oder Zeichen zu reduzieren
Herzschlag/RunService.HeartbeatFührt Funktionen aus, die mit dem Class.RunService.Heartbeat``event.Talk verbunden sind, an die Kontakte zur Simulation und Skripte. Die aktuelle Beschreibung ist generisch genug, um nicht falsch zu seinReduzieren Sie die Menge oder die Belastung von Funktionen, die mit RunService.Heartbeat verbunden sind.

Vernetzung

BezeichnungBeschreibungLeistungstipps
Verteiltes PhysikbesitzBestimmt, ob der Server oder ein Client über bestimmte Instanzen wie Teile Autorität hat.Verteiltes Physikbesitz.
Simulation/ZusammenbauAktualisiert einen Baum von verbundenen Objekten (Zusammenstellungen), die vom Physik-Engine verwendet werden.Reduziere die Menge an Gelenken, die erstellt oder zerstört werden.
Simulation/PhysikSteppedTotal/PhysikSteppedFührt die Physiksimulation durch.Reduziere die Menge und Komplexität physisch simulierter Körper.
Simulation/PhysikSteppedTotal/PhysikStepped/Raumfilter/FilterSchrittAktualisiert Simulationsinseln, ordnet Teile nach Netzwerkbesitz, lokale Simulation an.Inseln sind nicht interagierende Gruppen von Teilen, die unabhängig voneinander simuliert werden können.Vermeiden Sie es, das Netzwerkbesitz häufig zu setzen. Halten Sie Gruppen von Teilen weit genug voneinander entfernt, damit sie separat simuliert werden können.
Simulation/PhysikSteppedTotal/PhysikStepped/WeltSchritt/SchrittKontakteAktualisiert Kontakte zwischen Objekten.Reduziere die Anzahl der Körper, die gleichzeitig kollidieren, oder verwende einfachere Kollisionsboxen. Würfel sind besser als komplexe Meshes.
Simulation/physicsSteppedTotal/physicsStepped/worldStep/stepWorld ODER stepWorldThrottledLöst physikalische Gleichungen in Bezug auf Verbindungen, Auftrieb und Humanoids .Wenn die Engine überlastet ist und nicht in der Lage ist, alles in Echtzeit zu simulieren, können einige Schritte gedrosselt werden (stepWorldThrottled) und nur "Echtzeit-Montagen" wie Humanoids simuliert werden.Hängt davon ab, wo die Zeit basierend auf den folgenden drei Phasen geht: stepContacts: schmale Phasenkollisionsdetektionsgeometrie-Tests.Löser-Schritt: Zeit integrieren und Kollisionen und andere Einschränkungen lösen updateBroadphase: Positionen von Montagemaschinen im Kollisionserkennungssystem aktualisieren und möglicherweise kollidierende schmale Phasenpaare finden.
NotifyMovingAssembliesHilft zu verfolgen, wie lange Primitive geschlafen haben.
Simulation/PhysikSteppedTotal/PhysikStepped/interpolateNetworkedAssembliesInterpoliert Versammlungen, die nicht von diesem Netzwerk-Peer gesteuert werden.Setze den Netzwerkbesitzer von Teilen auf diesen Peer, um das zu reduzieren; obwohl dies in der Regel dazu führt, dass mehr Physik-Arbeit anderswo erledigt wird.
Simulation/handleFallenPartsEntfernt Teile, die unter Workspace/FallenPartsDestroyHeight gefallen sind.Senke die Zerstörhöhe oder reduziere die Menge der Teile, die auf die Zerstörhöhe fallen.
Herzschlag/heartbeatInternally/workspaceOnHeartbeat/updateVisuallySleepingZweiter Teil von NotifyMovingAssemblies.
Herzschlag/RunService.HeartbeatFührt Funktionen aus, die mit dem Class.RunService.Heartbeat``event.Talk verbunden sind, an die Kontakte zur Simulation und Skripte. Die aktuelle Beschreibung ist generisch genug, um nicht falsch zu seinReduziere die Menge oder die Belastung von Funktionen, die mit RunService.Heartbeat verbunden sind.
weltSchritt/SchrittKontakteHilft der Physiksimulation, mehrere Kontakte gleichzeitig zu simulieren.Reduziere die Anzahl der kollidierenden Objekte.
Löse批量Hilft der Physiksimulation, Batches von Objektbewegungen zu lösen.
Mechanismus-InterpolationHilft bei InterpolateNetworkAssemblies.

UI

BezeichnungBeschreibungLeistungstipps
Render/PreRender/UpdateInputAktualisiert und feuert alle mit dem Benutzeingabezusammenhängenden Ereignisse ab, wenn der Benutzer seit dem letzten Frame Eingaben durchgeführt hat.Das ist der Fall, wenn sich Ereignisse im Zusammenhang mit der Eingabe des Benutzers initiieren.Es ist wichtig, zu versuchen, nicht zu viel Arbeit direkt zu erledigen, wenn du die Eingabe erhältst.Betrachte die Durchführung einer minimalen Menge an Verarbeitung für die Eingabe und größere Berechnungen sollten auf einen anderen Thread verschoben werden, der später passiert.
Render/PreRender/TweenServiceAktualisiert Objekte, die mit TweenService und Aufrufen von Abschlussrückrufen aktualisiert werden, wie diejenigen, die für TweenSize oder TweenPosition bereitgestellt wurden.Reduziere die Anzahl der Objekte, die mit TweenService getrimmt werden, und stelle sicher, dass Rückrufe so wenig Arbeit wie möglich erledigen.
Render/PreRender/UpdateUILayoutsAktualisiert die Position und Größe von UI-Elementen.Reduziere die Menge der UI-Elemente, die dynamisch skaliert oder neu positioniert werden, wie die von UILayout verwaltet.
Herzschlag/TweenServiceAuf dem Server werden Objekte aktualisiert, die mit TweenService getweened wurden. Auf dem Client erfolgt dies stattdessen in einem Voreinstellungsschritt.Reduziere die Anzahl der von TweenService durchgespielten Objekte.