Il seguente è un elenco di tag comuni nel MicroProfiler, grouped by categoria. Understanding these tags can help you identify problematic code in your experience. Le tabelle contengono il tag Etichetta, le descrizioni e il consiglio di performance per migliorare le prestazioni e ottimizzare la tua esperienza.
AI/Navigazione
Etichetta | Descrizione | Consigli per le prestazioni |
---|---|---|
rasterizzaTile | Aggiorna i riquadri di navigazione necessari per una Richiestadi pathfinding, di solito seguiti da computePath che richiede che questi riquadri siano aggiornati. Segui NavigationJob / pre処理 sul Filoprincipale. | Riduci il numero di annullamenti del tessuto di pathfinding, poiché questo causa che queste vie abbiano bisogno di calcoli re-correlati. Questo è causato da parti non navigabili che si muovono. |
calcolaPath | Calcola i percorsi, di solito dopo rasterizeTile . | Riduci il numero e gli ambienti mondiali di ComputePath chiamate. Prova a riutilizzare le vie per più agenti se sono previsti di iniziare/finire da luoghi approssimativamente simili. |
pre处理/getPrimitivesOverlapping | Raccoglie la geometria del mondo per ciascuna piattaforma di pathfinding e programma le attività di rasterizzazione da eseguire dal Filodi pathfinding. | Riduci il numero di parti. |
Animazione
Etichetta | Descrizione | Consigli per le prestazioni |
---|---|---|
Simulazione/giocoStepped | Elaborazione di oggetti specifici del gioco come Humanoids , Animations e richiami di Heartbeat | |
Simulazione/gameStepped/StepLegacy | Humanoid stato cambia e movement.Called passoHumanoid sul server ora (versione parallela) | Disabilita o riduci gli stati Humanoid su NPC, se li hai. Lo stato di escala è il più importante per Disattivare. Riduci i richiami agli stati di cambiamento come Humanoid.Died o Humanoid.Running |
Simulazione/gameStepped/stepAnimation | Animators andrà avanti nel giocare le animazioni attualmente. | Riduci la quantità di Animators o articolazioni animati per ridurre il carico di lavoro di questo passo. Riduci il numero di richiami alle eventi di animazione come AnimationTrack.KeyframeReached o AnimationTrack.Ended |
Simulazione/gameStepped/RunService.Stepped | Esegue funzioni connesse all'evento RunService.Stepped. | Riduci la quantità o il carico di funzioni connesse a questo evento. Considere la differita o la sostituzione di costosi calcoli. Considere la diffusione della calcolabilità su più frame. |
Audio
Etichetta | Descrizione | Consigli per le prestazioni |
---|---|---|
Suono | Elaborazione audio/suono: posizioni, effetti, volumi, ecc. | |
DeveloperTag_Sounds | Suoni in memoria: suoni brevi che sono abbastanza piccoli da entrare in memoria. Di solito fx breve a un colpo, non musica lunga. | Usa meno suoni brevi. |
DeveloperTag_StreamingSounds | stream/StreamingSounds: questi sono suoni più grandi che vengono streamed dal disco. Generalmente file musicali a forma lunga. | Usa meno suoni lunghi. |
Reti
Etichetta | Descrizione | Consigli per le prestazioni |
---|---|---|
Ricezione del pacchetto netto | Riceve pacchetti di rete. Se molti oggetti o eventi vengono replicati, questo passo richiede più tempo. | Replica meno oggetti o eventi. |
Replicator/ProcessPackets | Elabora il contenuto dei pacchetti di rete, come le mosse, le chiamate agli eventi e le modifiche delle proprietà. | Riduci il numero o la dimensione degli oggetti che vengono replicati, o fai questo in passi incrementali. Potrebbe aumentare se la dimensione delle mappe aumenta, poiché le mappe più grandi tendono ad avere più attività complessiva. |
Alloca la banda e esegui Senders/Dispatch Physics Senders e TouchSenders | Invia dati sull'attività nell'esperienza. | Riduci la quantità di oggetti in movimento e/o tocchi. Vedi le sezioni seguenti. |
Attribuisci banda e esegui Senders/Dispatch StreamJob | Invia regioni corrispondenti a client specifici nella Proprietà"Streaming". | Riduci il minimo e il target streaming radii. |
Alloca la banda e esegui i mittenti / dati di destinazione | Invia cambi di proprietà, eventi remoti, cambiamenti di stato umanoidi, avvio/停止 dell'animazione. | Riduci il numero di cambiamenti replicati al modello di dati |
Replicator SendClone | Invia dati del terreno ai client. | Riduci la quantità o la dimensione delle modifiche del terreno. |
ModelCompleteness Mega Lavoro | Solo server: la completezza è un concetto interno. Quando i modelli vengono completati, gli eventi di completezza del modello vengono Sentenza | Aggiungi o rimuovi meno istanze. |
Deserializza il pacchetto | Elaborazione del pacchetto di rete di basso livello. Prepara per Replicator ProcessPackets. | Invia meno aggiornamenti. |
Render
Etichetta | Descrizione | Note di performance |
---|---|---|
Prepara | L'informazione viene raccolta dal thread principale e aggiorna varie strutture di dati utilizzate per il rendering. Ciò blocca i thread di simulazione, quindi dovrebbe essere il più piccolo possibile. | Vedi le etichette Preparare sotto. |
Prepara/Pass3dAdorn | Renderizza varie decorazioni per oggetti, come le etichette di testo sopra gli oggetti. Questo pass può includere raycasting per determinare se tali oggetti sono visibili. | Riduci il numero di oggetti decorati visibili, come BillboardGuis , Humanoid etichetta del nome/vita, ecc. |
Prepara/Pass2d | Prepara la renderizzazione dell'interfaccia utente 2D (sia il giocatore che l'interfaccia utente Roblox). | Riduci la quantità o la complessità degli elementi UI. |
Prepara/UpdatePrepara/updateInvalidParts | Aggiorna parti che hanno cambiato o aggiunto alcune proprietà. | Riduci la quantità di modifiche delle proprietà nel Mondo. Se uno script aggiorna un grande set di proprietà dell'oggetto, break it down across frame. |
Prepara/UpdatePrepara/aggiornatoInvalidatedFastClusters | Prepara la geometria, tipicamente "FastClusters" utilizzato per rendere Humanoids . I sottomarcer specificano il numero di parti, vertici e dimensioni dei vertici. | Riduci l'uso di 'Humanoid' sotto gli oggetti che non sono Humanoids . Questo non dovrebbe essere usato per ridurre i chiamati di disegno poiché FastClusters consuma molto più memoria. |
Prepara/UpdatePrepara/updateDynamicParts | Aggiorna le posizioni per Humanoids , veicoli e altre istanze in movimento per il rendering. | Riduci il numero o la complessità dei Humanoids o veicoli visibili. Combinare parti dello stesso materiale e colore in un'unione o MeshPart può aiutare con questo. |
Prepara/UpdatePrepara/updateInstancedClusters | Prepara la geometria statica che usa il rendering istantaneo (parti e parti di mesh). Indica "Cluster" e "Instances" per il numero aggiornato. | Usa meno variazione mesh e materiale complessiva. Puoi anche creare cluster utilizzando oggetti che hanno aspetti simili - dimensioni, colore, materiale. |
Esegui | Quando vengono creati e emessi comandi di rendering. | Vedi le etichette Perform sotto. |
Esegui/riempGUIVertices | Renderizzazione UI. Riempe i tamponi con vertici UI per decorare. Il tag "Gui count" indica il numero di elementi nella lista di rendering. | Se il costo è elevato, riduci la quantità di UI che viene aggiornata disabilitandola quando non è in uso assicurandoti che sia correttamente nascosta. |
Perform/Scene/queryFrustumOrdered | Applica la selezione frustum in modo che gli oggetti non visibili non siano renduti. | Se ci sono costi elevati che significa che ci sono molti elementi. Forse usa alcuni maggiori mesh in cui un singolo mesh ha più dettagli invece di molti piccoli pezzi individuali. |
Perform/Scene/computeLightingPerform | Calcolo della luce vicino alla Telecamera. | Manipola il numero di fonti di luce o muovi la fotocamera meno per ridurre il tempo richiesto per il calcolo delle luci. |
Perform/Scene/computeLightingPerform/LightGridCPU | Aggiorna il lighting voxel, che è utilizzato in Voxel e ShadowMap modalità e a livelli di qualità sotto 4 in Future modalità. | Se l'occupazione del pezzo si estende troppo a lungo, considera di utilizzare la geometria di risoluzione inferiore, riducendo il numero di parti o ancorando le parti. Se gli altri sub-marcatori si estendono troppo, considera di ridurre il numero di luci e utilizzare la geometria di ombreggiatura non ombreggiatura per gli oggetti che si muovono e non validano l'occupazione. |
Perform/ShadowMapSystem | Aggiorna le mappe dell'ombra. Non viene eseguito a livelli di qualità inferiori a 4 o quando Lighting.Technology è impostato su Voxel . | Se l'illuminazione è impostata su Future, abbassala a ShadowMap o riduci il numero di luci. Puoi anche usare Light.Shadows e 1> Class.BasePart.CastShadows1> per disabilitare il cast-ombra su istanze meno importanti. |
Perform/Scene/Glow, ColorCorrection, MSAA, SSAO, e SSAOApply | Renderizzazione post-处理。 | Riduci il numero di effetti post-处理. Di solito non è importante. |
Perform/Scene/UI | Renderizzazione UI. In Id_Screen, c'è un'etichetta con il numero di lotte, materiali e triangoli utilizzati. | Riduci il numero di elementi UI visibili. L'uso di CanvasGroups potrebbe aiutare a spese di memoria aumentate. |
Perform/Scene/UpdateView/updateParticles, updateParticleBindings | Aggiorna la posizione e gli errori delle particelle. | Riduci il numero di ParticleEmitters , emissioni, tempi di vita, ecc. Limitare il movimento degli emitter. |
Id_Opaco | Parti nella scena con un valore di trasparenza di 0. | |
Id_Trasparente | Parti nella scena con un valore di trasparenza diverso da 0. | Riduci l'uso della trasparenza parziale (valori diversi da 0 e 1). |
Id_Decal | Decal in scena. | |
Esegui/Presenta | Attende che ilGPU abbia finito di rendere il frame precedente; in realtà emette comandi di rendering alGPU; si occupa delle risorse grafiche di livello basso. | Riduci la complessità della scena in Generale. Se questo passo richiede un sacco di tempo, potresti essere limitato dallaGPU. |
Esegui/Presenta/aspetta fino a quando non è completato | Attende che ilGPU abbia finito di rendere il precedente frame. | Se questo accade molto generalmente, allora la quantità di cose renderizzate è troppo alta. FRM aiuta con il bilanciamento di questo, ma se rimane alto, prova a usare meno dettagli. |
Script
Etichetta | Descrizione | Consigli per le prestazioni |
---|---|---|
Render/PreRender/fireBindToRenderSteppedCallbacks | Esempi di funzioni che rendono step via RunService:BindToRenderStep() . | Assicurati che le funzioni negli script che usi RunService:BindToRenderStep() facciano il meno lavoro possibile. |
Render/PreRender/RunService.RenderStepped | Esegue funzioni connesse all'evento RunService.RenderStepped . | Simile a BindToRenderStep , assicurati che le funzioni che usano questo evento facciano il meno lavoro possibile. |
Job di scriptibrido di attesa | Riassume gli script in attesa utilizzando i frame di attesa. | Questo passo ha un budget di tempo di esecuzione per eseguire gli script in attesa, quindi se hai troppi script in attesa o gli script con un lungo tempo di esecuzione prima di essere generati, questo passo può prendere più |
LuaGC | Ciclo di raccolta dei rifiuti Lua. Label fornisce stime di memoria sull'allocazione totale e su quanto è stato deallocato. | Tabelle lua della piscina e altri oggetti collezionabili o prova a ridurre la creazione di tabelle temporanee o stringhe |
Heartbeat/RunService.Heartbeat | Esegue funzioni connesse al Class.RunService.Heartbeat``event.Talk per contatti di simulazione e script. La descrizione attuale è abbastanza generica da non essere errata | Riduci la quantità o il carico di funzioni connesse a RunService.Heartbeat. |
Simulazione
Etichetta | Descrizione | Consigli per le prestazioni |
---|---|---|
Proprietà fisica distribuita | Determina se il server o un client hanno l'autorità su alcune istanze come parti. | Proprietà fisica distribuita. |
Simulazione/assemblaggio | Aggiorna un albero di oggetti connessi (assemblaggi) utilizzati dal motore fisico. | Riduci la quantità di articolazioni create o distrutte. |
Simulazione/fisicaSteppedTotal/fisicaStepped | Esegue la simulazione fisica. | Riduci la quantità e la complessità dei corpi fisicamente simulati. |
Simulazione/fisicaSteppedTotal/fisicaStepped/SpacialFilter/filterStep | Aggiorna le isole di simulazione, in modo da riorganizzare le parti in base alla proprietà di rete, alla simulazione locale. Le isole sono gruppi non interattabili di parti che possono essere simulate in modo indipendente. | Evita di impostare la proprietà della rete con frequenza. Mantieni i gruppi di parti lontani abbastanza l'un dall'altra in modo che possano essere simulati separatamente. |
Simulazione/fisicaSteppedTotal/fisicaStepped/worldStep/stepContatti | Aggiorna i contatti tra gli oggetti. | Riduci il numero di corpi che si scontrano contemporaneamente, o usa casse di collisione più semplici. I cubi sono migliori dei complessi mesh. |
Simulazione/fisicaSteppedTotal/fisicaStepped/worldStep/stepWorld OLTRE stepWorldThrottled | Risolve gli equazioni fisiche relativi ai connettori, alla fluttuabilità e Humanoids . Quando il motore è sovraccaricato e non è in grado di simulare tutto in tempo reale, alcuni passaggi possono essere ridotti (stepWorldThrottled) e solo "tempi di recupero come real time" come Humanoids vengono simulati. | Dipende da dove il tempo sta andando in base alle seguenti tre fasi: stepContacts: test di collisione di fasi strette. Solver step: integrate time and resolve collisions and other constraints updateBroadprice: update posizioni di assemblies in collision detection system and find possibly colliding narrow phase pairs. |
Notifica di movimento delle assemblie | Aiuta a tracciare quanto tempo i primitivi sono stati in letargo. | |
Simulazione/fisicaSteppedTotal/fisicaStepped/interpolateNetworkedAssemblies | Interpola assemblaggi non controllati da questo network peer. | Imposta il proprietario di rete delle parti su questo peer per ridurre questo; anche se questo di solito causerà più lavoro fisico a essere eseguito altrove. |
Simulazione/manigliaFallenPart | Rimuove le parti che sono cadute sotto Workspace/FallenPartsDestroyHeight. | Abbassa l'altezza di distruzione o riduci la quantità di parti che cadono nell'altezza di distruzione. |
Heartbeat/heartbeatInternal/workspaceOnHeartbeat/updateVisuallySleeping | Seconda parte di NotifyMovingAssemblies. | |
Heartbeat/RunService.Heartbeat | Esegue funzioni connesse al Class.RunService.Heartbeat``event.Talk per contatti di simulazione e script. La descrizione attuale è abbastanza generica da non essere errata | Riduci la quantità o il carico di funzioni connesse a RunService.Heartbeat . |
worldStep/Contatti di squadra | Aiuta la simulazione fisica a fare molti contatti contemporaneamente. | Riduci il numero di oggetti che si collidono. |
Risolvere | Aiuta la simulazione fisica a risolvere le batch di movimento degli oggetti. | |
Interpolazione dei meccanismi | Aiuta con InterpolateNetworkAssemblies. |
Interfaccia utente
Etichetta | Descrizione | Consigli per le prestazioni |
---|---|---|
Render/PreRender/UpdateInput | Aggiorna e attiva tutti gli eventi relativi agli input dell'utente se l'utente ha eseguito un input da quando l'ultimo frame. | Questo è quando gli eventi relativi all'input dell'utente verranno Lanciare. È importante provare a non fare troppo lavoro direttamente mentre si ottiene l'input. Considere di eseguire una quantità minima di elaborazione per l'input e calcoli più grandi dovrebbero essere spinti su un altro thread che accade più tardi. |
Render/PreRender/TweenService | Aggiorna gli oggetti che vengono tweened using TweenService and calls completion callbacks, come quelli utilizzati to TweenSize or TweenPosition . | Riduci il numero di oggetti che vengono tweened usando TweenService e assicurati che i callback facciano il meno lavoro possibile. |
Render/PreRender/UpdateUILayouts | Aggiorna la posizione e la dimensione degli elementi UI. | Riduci la quantità di elementi UI ridimensionati o rinominati dinamicamente, come quelli gestiti da UILayout . |
Heartbeat/TweenService | Nel Server, aggiorna gli oggetti con TweenService. Nel client, questo viene fatto in un passo PreRender invece. | Riduci la quantità di oggetti tweened by TweenService . |