Questo è un elenco di tag comuni nel MicroProfiler, ordinato per categoria.Capire questi tag può aiutarti a identificare il codice problematico nella tua esperienza.Le tabelle contengono Etichettadi tag, descrizioni e consigli sulle prestazioni per migliorare le prestazioni e ottimizzare la tua esperienza.
Sonno
Quando i thread non stanno eseguendo attivamente compiti, entrano in uno stato di sonno, con tag che indicano quanto tempo il thread è stato inattivo.In qualsiasi momento, è estremamente comune che la maggior parte dei thread lavoratori sia in uno stato di sonno.
AI/ navigazione
Etichetta | Descrizione | Consigli di performance |
---|---|---|
rasterizeTile | Aggiorna le piastrelle di navigazione necessarie per una Richiestadi ricerca di percorso, solitamente seguita da computePath che richiede che tali piastrelle siano aggiornate.Segue NavigationJob/preprocess sul Filoprincipale. | Riduci il numero di invalidazioni di ricerca del percorso, poiché questo causa il bisogno di ricomputare tali percorsi. Questo è causato dal movimento di parti non navigabili. |
computePath | Calcola i percorsi, tipicamente dopo rasterizeTile . | Riduci il numero e le estensioni mondiali delle chiamate ComputePath .Prova a riutilizzare i percorsi per più agenti se sono previsti di iniziare/finire da luoghi approssimativamente simili. |
preprocess/getPrimitivesOverlapping | Raccoglie la geometria del mondo per ogni tile di pathfinding e programma le attività di rasterizzazione da eseguire dal Filodi pathfinding. | Riduci il conteggio delle parti. |
Animazione
Etichetta | Descrizione | Consigli di performance |
---|---|---|
Simulazione/gameStepped | Elaborazione di oggetti specifici del gioco come Humanoids , Animations e richiami di battito cardiaco | |
Simulazione/gameStepped/StepLegacy | Humanoid stati di modifica e movement.Called stepHumanoid sul server ora (versione parallela) | Disabilita o riduci gli stati Humanoid su NPC, se li hai.Lo stato della scala è più importante da Disattivare.Riduci le richieste di ritorno alle modifiche di stato come Humanoid.Died o Humanoid.Running |
Simulazione/gameStepped/stepAnimation | Animators avrà un passo avanti nelle animazioni in riproduzione attualmente. | Riduci la quantità di Animators o articolazioni animata per ridurre il carico di lavoro di questo passaggio.Riduci il numero di richiami a eventi di animazione come AnimationTrack.KeyframeReached o AnimationTrack.Ended |
Simulazione/gameStepped/RunService.Stepped | Esegue le funzioni connesse all'evento RunService.Stepped . | Riduci la quantità o il carico di funzioni connesse a questo evento.Considera il ritardo o la sostituzione di calcoli costosi.Considera la diffusione della computazione su più frame. |
Audio
Etichetta | Descrizione | Consigli di performance |
---|---|---|
Suono | Elaborazione audio/suono: luoghi, effetti, volumi, ecc. | |
Tag sviluppatore_Sounds | Suoni in memoria: suoni generalmente brevi che sono abbastanza piccoli da entrare in memoria. Di solito fx one-shot breve, non musica a lunga forma. | Usa meno suoni brevi. |
Tag sviluppatore_StreamingSounds | stream/StreamingSounds: questi sono suoni più grandi che vengono trasmessi dal disco. Generalmente file musicali di lunga forma. | Usa meno suoni lunghi. |
Reti
Etichetta | Descrizione | Consigli di performance |
---|---|---|
Ricezione del pacchetto netto | Riceve pacchetti di rete. Se vengono replicati molti oggetti o eventi, questo passo richiede più tempo. | Replica meno oggetti o eventi. |
Replicatore/ProcessPackets | Elabora i contenuti dei pacchetti di rete, come le mosse, le richieste di eventi e le modifiche delle proprietà. | Riduci il numero o la dimensione degli oggetti in riproduzione, o fallo in passi incrementali.Può aumentare se la dimensione della mappa aumenta, poiché le mappe più grandi tendono ad avere più attività complessiva. |
Assegnare la larghezza di banda e eseguire mittenti/fisici di spedizione e TouchSenders | Invia dati sull'attività nell'esperienza. | Riduci la quantità di oggetti in movimento e/o tocchi. Vedi le seguenti sezioni. |
Assegnare la larghezza di banda e eseguire mittenti/streamjob di spedizione | Invia regioni corrispondenti a client specifici nella Proprietà"Streaming". | Riduci il raggio minimo e target di streaming. |
Assegnare la larghezza di banda e eseguire mittenti/ mittenti di dati di spedizione | Invia modifiche di proprietà, eventi remoti, cambiamenti di stato umanoidi, avvio/stop di animazione. | Riduci il numero di modifiche replicate al modello di dati |
Replicator SendCluster | Invia dati del terreno ai client. | Riduci la quantità o la dimensione dei cambiamenti del terreno. |
ModelCompleteness Mega Lavoro | Solo server: la completezza è un concetto interno. Quando i modelli vengono completamente inviati, vengono inviati eventi di completamento del modello. | Aggiungi o elimina meno istanze. |
Pacchetto Deserialize | Elaborazione del pacchetto di rete di basso livello. Prepara per i processi di Replicator. | Invia meno aggiornamenti. |
Rendimento
Etichetta | Descrizione | Note di performance |
---|---|---|
Preparare | Le informazioni vengono raccolte dal thread principale e aggiornano varie strutture di dati utilizzate per il rendering.Questo blocca i thread di simulazione, quindi dovrebbe essere il più piccolo possibile. | Vedi Prepara le etichette qui sotto. |
Preparare/Pass3dAdorn | Rendering di varie decorazioni di oggetti, come etichette di testo sopra gli oggetti. Questo passo può includere il raycasting per determinare se tali oggetti sono visibili. | Riduci il numero di oggetti decorati visibili, come BillboardGuis , Humanoid etichette nome/salute, ecc. |
Preparare/Pass2d | Prepara il rendering dell'interfaccia utente 2D (sia del giocatore che dell'interfaccia utente Roblox). | Riduci la quantità o la complessità degli elementi UI. |
Preparare/AggiornaPreparare/aggiornaParti non valide | Aggiorna le parti che hanno avuto qualche proprietà cambiata o aggiunta. | Riduci la quantità di modifiche delle proprietà sul Mondo. Se uno script aggiorna un grande set di proprietà degli oggetti, spezzalo attraverso i frame. |
Preparare/AggiornaPreparare/aggiornaInvalidatedFastClusters | Prepara la geometria, tipicamente "FastClusters" utilizzati per rendere Humanoids . I sottomarcatori specificano il numero di parti, vertici e dimensione dei vertici. | Riduci l'uso di 'Humanoids' sotto oggetti che non sono Humanoids .Questo non dovrebbe essere utilizzato per abbreviare le chiamate di disegno poiché i FastClusters consumano molta più memoria. |
Preparare/AggiornaPreparare/aggiornaDynamicParts | Aggiorna le posizioni per Humanoids , veicoli e altre istanze in movimento per il rendering. | Riduci il numero o la complessità della movimentazione di Humanoids o veicoli visibili.Unire parti dello stesso materiale e colore in un'unione o in una MeshPart può aiutare con questo. |
Preparare/AggiornaPreparare/aggiornaI cluster istanziati | Prepara la geometria statica che utilizza il rendering istanziato (parti e parti mesh). Le etichette "Cluster" e "Instance" indicano il numero aggiornato. | Usa meno variazioni di mesh e materiale complessivamente. Puoi anche creare cluster utilizzando oggetti che hanno apparenze simili - dimensione, colore, materiale. |
Eseguire | Quando vengono creati e emessi comandi di rendering effettivi. | Vedi Etichette di esecuzione qui sotto. |
Esegui/riempimentoGuiVertici | Rendering dell'interfaccia utente. Riempe i buffer con vertici dell'interfaccia utente per adorni. L'etichetta "Gui count" indica la quantità di elementi nella lista del rendering. | Se il costo è elevato, riduci la quantità di interfaccia utente aggiornata disabilitandola quando non viene utilizzata assicurandosi che sia nascosta correttamente. |
Esegui/Scena/queryFrustumOrdinato | Applica la selezione del frustum in modo che gli oggetti non visibili non vengano resi. | Se c'è un alto costo, significa che ci sono molti elementi.Forse usa alcune maggiori maglie in cui una singola maglia ha più dettagli rispetto a molte piccole parti individuali. |
Esegui/Scena/ computeLightingPerform | Calcolo dell'illuminazione vicino alla Telecamera. | Manipola il numero di sorgenti luminose o sposta la fotocamera meno per ridurre il tempo necessario per ricalcolare l'illuminazione. |
Esegui/Scena/ computeLightingPerform/LightGridCPU | Aggiorna la luce dei voxel, che viene utilizzata in Voxel e ShadowMap modi e a livelli di qualità inferiori a 4 in Future modo. | Se l'aggiornamento dell'occupazione del chunk richiede troppo tempo, considera di utilizzare una geometria di risoluzione inferiore, ridurre il numero di parti o ancorare le parti.Se gli altri sottomarcatori richiedono troppo tempo, considera di ridurre il numero di luci e di utilizzare la geometria di lancio non ombra per gli oggetti che si muovono e invalidano l'occupazione. |
Esegui/Scena/ computeLightingPerform/ShadowMapSystem | Aggiorna le mappe dell'ombra. Non eseguito a livelli di qualità inferiori a 4 o quando Lighting.Technology è impostato su Voxel . | Se l'illuminazione è impostata su Future , abbassala su ShadowMap o riduci il numero di luci.Puoi anche usare Light.Shadows e BasePart.CastShadows per disabilitare il lancio delle ombre su istanze meno importanti.Vedi Miglioramento delle prestazioni . |
Esegui/Scena/Glow, Correzione del colore, MSAA, SSAO, e SSAOApply | Renderizzazione post-processing. | Riduci il numero di effetti di post-elaborazione. Di solito questo non è significativo. |
Esegui/Scena/UI | Rendering dell'interfaccia utente. In Id_Screen, c'è un'etichetta con il numero di batch, materiali e triangoli utilizzati. | Riduci il numero di elementi UI visibili. L'utilizzo di CanvasGroups può aiutare a spese di un aumento dell'uso della memoria. |
Esegui/Scena/AggiornaVisuale/aggiornaParticelle, aggiornaParticelleLimitazioni | Aggiorna la posizione e i confini delle particelle. | Riduci il numero di ParticleEmitters , tassi di emissione, tempi di vita, ecc. Limita il movimento degli emittenti. |
Id_Opaque | 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 di trasparenza parziale (valori diversi da 0 e 1). |
Id_Decal | Decali nella scena. | |
Esegui/Presenta | Attende che la GPU finisca di rendere il frame precedente; in realtà emette comandi di rendering alla GPU; si occupa di risorse grafiche a basso livello. | Riduci la complessità della scena in Generale. Se questo passo richiede molto tempo, potresti essere limitato dalla GPU. |
Esegui/Presenta/aspetta fino a quando non è completato | Attende che la GPU finisca di rendere il frame precedente. | Se questo sta accadendo in generale molto allora la quantità di cose rendite è troppo alta.FRM aiuta a bilanciare questo, ma se rimane alto, prova a usare meno dettagli. |
Script
Etichetta | Descrizione | Consigli di performance |
---|---|---|
Render/PreRender/fireBindToRenderSteppedCallbacks | Esecuzione delle funzioni legate al rendering del passo tramite RunService:BindToRenderStep() . | Assicurati che le funzioni negli script utilizzando RunService:BindToRenderStep() facciano il minor lavoro possibile. |
Rendere/PreRender/RunService.RenderStepped | Esegue le funzioni connesse all'evento RunService.RenderStepped . | Simile a BindToRenderStep, assicurati che le funzioni che utilizzano questo evento facciano il minor lavoro possibile. |
Job di script ibrido in attesa | Riprende gli script in attesa usando i frame di attesa. | Questo passo ha un budget di tempo di esecuzione per eseguire gli script di attesa, quindi se hai troppi script di attesa o script con un lungo tempo di esecuzione prima di arrendersi, questo passo può richiedere più |
LuaGC | Ciclo di raccolta dei rifiuti Luau. La label fornisce stime di memoria sull'allocazione totale e quanto è stato deallocato. | Tabelle lua della piscina e altri oggetti da collezione o tenta di ridurre la creazione di tabelle temporanee o stringhe |
Battito cardiaco/RunService.Heartbeat | Esegue funzioni connesse al Class.RunService.Heartbeat``event.Talk per i contatti di simulazione e gli script. La descrizione attuale è abbastanza generica da non essere sbagliata | Riduci la quantità o il carico di lavoro delle funzioni connesse a RunService.Heartbeat. |
Simulazione
Etichetta | Descrizione | Consigli di performance |
---|---|---|
Proprietà della fisica distribuita | Determina se il server o un client ha l'autorità su alcune istanze come parti. | Proprietà della fisica distribuita. |
Simulazione/assemblaggio | Aggiorna un albero di oggetti connessi (assemblaggi) utilizzati dal motore fisico. | Riduci la quantità di articolazioni che vengono create o distrutte. |
Simulazione/fisicaSteppedTotal/physicsStepped | Esegue la simulazione fisica. | Riduci la quantità e la complessità dei corpi fisicamente simulati. |
Simulazione/fisicaSteppedTotal/fisicaStepped/Filtro Spaziale/filtroPasso | Aggiorna le isole di simulazione, organizzando le parti secondo la proprietà della rete, la simulazione locale.Le isole sono gruppi non interagenti di parti che possono essere simulati in modo indipendente. | Evita di impostare frequentemente la proprietà della rete. Mantieni i gruppi di parti abbastanza lontani l'uno dall'altro in modo che possano essere simulati separatamente. |
Simulazione/fisicaSteppedTotal/physicsStepped/worldStep/stepContatti | Aggiorna i contatti tra gli oggetti. | Riduci la quantità di corpi che si scontrano contemporaneamente o usa scatole di collisione più semplici. I cubi sono migliori delle maglie complesse. |
Simulazione/fisicaSteppedTotal/physicsStepped/worldStep/stepWorld OPPURE stepWorldThrottled | Risolve le equazioni fisiche relative ai connettori, alla fluttuazione e Humanoids .Quando il motore è sovraccarico e non è in grado di simulare tutto in tempo reale, alcuni passaggi possono essere ridotti (stepWorldThrottled) e vengono simulate solo "assemblaggi in tempo reale" come Humanoids . | Dipende da dove il tempo sta andando in base alle seguenti tre fasi: stepContacts: test di geometria di collisione di fase stretta.Passo solvente: integra il tempo e risolvi le collisioni e altre restrizioni updateBroadphase: aggiorna le posizioni delle assemblee nel sistema di rilevamento delle collisioni e trova eventualmente coppie di fase stretta che potrebbero collidere. |
NotifyMovingAssemblies | Aiuta a tracciare quanto tempo i primitivi sono stati dormire. | |
Simulazione/fisicaSteppedTotal/physicsStepped/interpolateNetworkedAssemblies | Interpola assemblaggi non controllati da questo peer di rete. | Imposta il proprietario della rete delle parti a questo peer per ridurre questo; anche se questo di solito causerà più lavoro fisico da svolgere altrove. |
Simulazione/handleFallenParts | Rimuove parti che sono scese al di sotto di 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. | |
Battito cardiaco/RunService.Heartbeat | Esegue funzioni connesse al Class.RunService.Heartbeat``event.Talk per i contatti di simulazione e gli script. La descrizione attuale è abbastanza generica da non essere sbagliata | Riduci la quantità o il carico di funzioni connesse a RunService.Heartbeat . |
worldStep/StepContatti | Aiuta la simulazione fisica a passare molti contatti contemporaneamente. | Riduci il numero di oggetti in conflitto. |
Risolvi batch | Aiuta la simulazione fisica a risolvere batch di movimento di oggetti. | |
Interpolazione del meccanismo | Aiuta con InterpolateNetworkAssemblies. |
UI
Etichetta | Descrizione | Consigli di performance |
---|---|---|
Render/PreRender/AggiornaInput | Aggiorna e lancia tutti gli eventi di input dell'utente correlati se l'utente ha eseguito l'input dall'ultimo frame. | Questo è quando si Lanciareeventi relativi all'input dell'utente.È importante cercare di non fare troppo lavoro direttamente quando si ottiene l'input.Considera di eseguire una quantità minima di elaborazione per l'input e le maggiori operazioni dovrebbero essere spostate su un altro thread che si verifica più tardi. |
Render/PreRender/TweenService | Aggiorna gli oggetti in transito utilizzando TweenService e chiama le chiamate di completamento, come quelle fornite a TweenSize o TweenPosition . | Riduci il numero di oggetti in transizione utilizzando TweenService e assicurati che le chiamate di ritorno facciano il minor lavoro possibile. |
Render/PreRender/Aggiorna layout UIL | Aggiorna la posizione e le dimensioni degli elementi UI. | Riduci la quantità di elementi UI ridimensionati o riposizionati dinamicamente, come quelli gestiti da UILayout . |
Battito cardiaco/TweenService | Sul Server, aggiorna gli oggetti tweened con TweenService. Sul client, questo viene fatto in un passo di PreRender invece. | Riduci la quantità di oggetti tweened da TweenService . |