A seguir, um list de tags comuns no MicroProfiler, agrupados por categoria. Compreender essas tags pode ajudá-lo a identificar código problemático em sua experiência. As tabelas contêm rótulos de tag, etiqueta / rótuloe conselhos de desempenho para ajudá-lo a identificar código problemático em sua experiência.
IA/Navegação
Rótulo | Descrição | Dicas de Desempenho |
---|---|---|
tilha de rasterização | Atualiza os mosaicos de navegação necessários para uma solicitar / pedirde rota, geralmente seguidos por computePath que requer que esses mosaicos estejam atualizados. Segue o NavigationJob/preprocesso no Subprocessoprincipal. | Reduza o número de inválidações de pátio de caminho, pois isso causa que esses caminhos precisem ser recomputados. Isso é causado por peças não navegáveis se movendo. |
计算路径 | Calcula caminhos, geralmente após rasterizeTile . | Reduza o número e mundos de chamadas de ComputePath. Tente reutilizar caminhos para vários agentes se eles estiverem esperados para começar/terinar de locais aproximadamente semelhantes. |
preprocess/getPrimitivesOverlapping | Coleta a geometria do mundo para cada páginas de seleção de caminhos e agenda as tarefas de rasterização para serem executadas pelo Subprocessode seleção de caminhos. | Reduza o número de peças. |
Animação
Rótulo | Descrição | Dicas de Desempenho |
---|---|---|
Simulação/jogoStepped | Processando objetos específicos do jogo, como Humanoids, Animations e Heartbeat | |
Simulação/jogoStepped/StepLegacy | Humanoid muda de estado e movement.Called passoHumanoid no servidor agora (versão paralela) | Desabilite ou reduza os estados Humanoid em NPCs, se você tiver. O estado da escala é mais importante para desabilitar. Reduza os retornos de chamada para estados de mudança de estado, como Humanoid.Died ou Humanoid.Running. |
Simulação/gameStepped/stepAnimation | Animators vai para a frente em jogar animações atualmente. | Reduza a quantidade de Animators ou articulações animadas para reduzir o trabalho desse passo. Reduza o número de chamadas para eventos de animação, como AnimationTrack.KeyframeReached ou AnimationTrack.Ended. |
Simulação/jogoStepped/RunService.Stepped | Executa funções conectadas ao evento RunService.Stepped. | Reduza a quantidade ou carga de funções conectadas a este evento. Considere atrasar ou substituir cálculos caros. Considere espalhar cálculos em vários quadros. |
Áudio
Rótulo | Descrição | Dicas de Desempenho |
---|---|---|
Som | Processando áudio: localizações, efeitos, volume, etc. | |
DeveloperTag_Sounds | Sons no Memória: geralmente sons curtos que são pequenos o suficiente para entrar na memória. Normalmente fx de um tiro, não música longa. | Use menos sons curtos. |
DeveloperTag_Sons de Streaming | stream/StreamingSounds: são sons maiores que são transmitidos do disco. Normalmente arquivos de música de longa forma. | Use sons mais curtos. |
Redes
Rótulo | Descrição | Dicas de Desempenho |
---|---|---|
Receber Pacote de Rede | Recebe pacotes de rede. Se muitos objetos ou eventos estiverem sendo replicados, esse passo leva mais tempo. | Replique menos objetos ou eventos. |
Repositor/ProcessPackets | Processa conteúdo de pacotes de rede, como movimento, invocações de eventos e mudanças de propriedade. | Reduza o número ou tamanho de objetos sendo replicados ou faça isso em etapas incrementais. Pode aumentar se o tamanho do mapa aumentar, como mapas maiores tendem a ter mais atividade geral. |
Alokar largura de banda e executar Senders/Dispatch Physics Senders e TouchSenders | Envia dados sobre a atividade na experiência. | Reduza a quantidade de objetos em movimento e/ou toques. Veja as seções a seguir. |
Alocar largura de banda e executar Senders/Dispatch StreamJob | Envia regiões correspondentes a clientes específicos na funcionalidade"Streaming". | Reduza o mínimo e o target streaming radii. |
Alocar largura de banda e executar Senders/Dispatch Data Senders | Envia mudanças de propriedade, eventos remotos, mudanças de estado de humanóide, inícia/paradas de animação. | Reduza o número de alterações replicadas para o modelo de dados |
RepLICador SendCloud | Envia dados de terreno para clientes. | Reduza a quantidade ou tamanho das alterações de terreno. |
ModelCompleteness Mega Trabalho | Apenas no servidor: a completude é um conceito interno. Quando os modelos são completos, os eventos de completude de modelo são sentença / frase | Adicione ou remova menos instâncias. |
Pacote de Desicialização | Processamento de pacote de rede de baixo nível. Prepara-se para Replicator ProcessPackets. | Envie menos atualizações. |
Renderizando
Rótulo | Descrição | Notas de desempenho |
---|---|---|
Prepare | A informação é coletada do subprocesso principal e atualiza várias estruturas de dados usadas para renderização. Isso bloqueia os subprocessos de simulação, então ele deve ser o mais pequeno possível. | Veja as etiquetas Prepare abaixo. |
Prepare/Pass3dAdorn | Renderiza vários adereços de objetos, como rótulos de texto acima de objetos. Este passo pode incluir raycasting para determinar se tais objetos são visíveis. | Reduza o número de objetos adornados visíveis, como BillboardGuis , Humanoid nomes/róis de saúde, etc. |
Prepare/Pass2d | Prepara renderização de UI 2D (ambos o jogador e a interface do usuário do Roblox). | Reduza a quantidade ou complexidade dos elementos da interface. |
Prepare/UpdatePrepare/updateInvalidParts | Atualiza peças que tiveram alguma propriedade alterada ou adicionada. | Reduza a quantidade de mudanças de propriedades no mundo. Se um script atualizar um grande conjunto de propriedades de objetos, quebre-o em vários quadros. |
Prepare/UpdatePrepare/updateInválidoFastClusters | Prepara geometria, geralmente "FastClusters" usado para renderizar Humanoids . Sub-marcadores especificam o número de peças, vértices e tamanho de vértices. | Reduza o uso de 'Humanoids' em objetos que não são Humanoids . Isso não deve ser usado para agilizar chamadas de desenho, pois FastClusters consome muito mais memória. |
Prepare/UpdatePrepare/updateDynamicParts | Atualiza as posições para Humanoids, veículos e outras instâncias em movimento para renderização. | Reduza o número ou complexidade de mover Humanoids ou veículos visíveis. Combinar peças do mesmo material e cor em uma união ou MeshPart pode ajudar com isso. |
Prepare/UpdatePrepare/updateInstancedClusters | Prepara geometria estática que usa renderização instantânea (partes e partes de malha). Labore "Clusters" e "Instances" para indicar o número atualizado. | Use menos variação de malha e material em geral. Você também pode criar grupos usando objetos que têm aparências semelhantes - tamanho, cor, material. |
Fazer Emote | Quando os comandos de renderização são criados e emitidos. | Veja as etiquetas Performance abaixo. |
Executar/reencherGuiVertices | Renderizando a interface. Enche os buffers com vértices de UI para adornos. A etiqueta "Gui count" indica a quantidade de elementos na lista de renderização. | Se o custo for alto, reduza a quantidade de UI sendo atualizada desativando-a quando não estiver em uso, garantindo que ela esteja oculta corretamente. |
Perform/Scene/queryFrustumOrdered | Aplica a limpeza de frustum para que objetos não visíveis não sejam renderizados. | Se houver um alto custo, o que significa que há muitos elementos. Talvez use alguns maiores malhas onde um único malha tem mais detalhes em oposição a muitas peças individuais pequenas. |
Perform/Scene/computeLightingPerform | Cálculo de iluminação perto da Câmera. | Manipule o número de fontes de luz ou mova a câmera para reduzir o tempo que leva para recontar a iluminação. |
Perform/Scene/computeLightingPerform/LightGridCPU | Atualiza a iluminação de voxel, que é usada nos modos Voxel e ShadowMap e em níveis de qualidade abaixo de 4 no modo Future. | Se a ocupação doChunk demora muito tempo para atualizar, considere usar geometria de menor resolução, reduzindo o número de peças ou ancorando peças. Se os outros sub-marcadores demoram muito tempo, considere reduzir o número de luzes e usar geometria de sombreamento para objetos que se movem e inválido. |
Perform/ShadowMapSystem/computeLightingPerform | Atualiza mapas de sombra. Não é executado em níveis de qualidade abaixo de 4 ou quando Lighting.Technology está definido como Voxel. | Se a iluminação estiver definida para Future, reduzi-la para ShadowMap ou reduza o número de luzes. Você também pode usar Light.Shadows e 1> Class.BasePart.CastShadows1> para desativar a sombra de cast para instâncias menos importantes. Veja |
Perform/Scene/Glow, ColorCorrection, MSAA, SSAO e SSAOApply | Renderizando pós-processamento. | Reduza o número de efeitos de pós-processamento. Normalmente, isso não é significativo. |
Fazer/Cena/UI | Renderizando a interface. Em Id_Screen, há uma etiqueta com o número de lotes, materiais e triângulos usados. | Reduza o número de elementos de UI visíveis. Usar CanvasGroups pode ajudar ao sacrifício de uso de memória aumentado. |
Perform/Scene/UpdateView/updateParticles, updateParticleBindings | Atualize a posição e limites de partículas. | Reduza o número de ParticleEmitters , taxas de emissão, tempos de vida, etc. Limite o movimento de emissores. |
Id_Opaco | Peças na cena com um valor de transparência de 0. | |
Id_Transparente | Peças na cena com um valor de transparência diferente de 0. | Reduza o uso de transparência parcial (valores que não sejam 0 e 1). |
Decalque de ID | Decalques na cena. | |
Fazer/Presentear | Aguarda o GPUs terminar de renderizar o quadro anterior; na verdade, emite comandos de renderização para o GPUs; lidar com recursos de baixo nível de gráficos. | Reduza a complexidade da cena em geral. Se este passo estiver demorando muito, você pode ser limitado peloGPU. |
Executar/Present/Esperar até que concluído | Aguarda oGPU para terminar a renderização da imagem anterior. | Se isso estiver acontecendo com frequência, a quantidade de coisas renderizadas está muito alta. FRM ajuda com o equilíbrio disso, mas se ele permanecer alto, tente usar menos detalhes. |
Scripts
Rótulo | Descrição | Dicas de Desempenho |
---|---|---|
Render/PreRender/fireBindToRenderSteppedCallbacks | Executando funções vinculadas a renderizar etapa via RunService:BindToRenderStep() . | Certifique-se de que as funções em scripts usando RunService:BindToRenderStep() trabalham o menor trabalho possível. |
Render/PreRender/RunService.RenderStepped | Executa funções conectadas ao evento RunService.RenderStepped. | Semelhante a BindToRenderStep, certifique-se de que as funções usando este evento fazem o menor trabalho possível. |
Job de HybridScript de Espera | Resume scripts esperando usando wait. frames. | Este passo tem um orçamento de tempo de execução para executar scripts de espera, então se você tiver muitos scripts de espera ou scripts com tempo de execução longo antes de entregar, este passo pode levar vários |
LuaGC | Ciclo de coleta de lixo Lua. O label fornece estimativas de memória sobre a alocação total e quanto foi desalocado. | Tabelas de lua da piscina e outros objetos coletáveis ou tente reduzir a criação de tabelas temporárias ou cadeias |
Heartbeat/RunService.Heartbeat | Executa funções conectadas ao Class.RunService.Heartbeat``event.Talk para contato com simulação e scripts. A descrição atual é genérica o suficiente para não estar errada | Reduza a quantidade ou carga de funções conectadas ao RunService.Heartbeat. |
Simulação
Rótulo | Descrição | Dicas de Desempenho |
---|---|---|
Distribuição de Propriedade de Física | Determina se o servidor ou um cliente têm autoridade sobre determinadas instâncias, como peças. | Distribuição de Propriedade Física. |
Simulação/montagem | Atualiza uma árvore de objetos conectados (ensambros) usados pelo motor de física. | Reduza a quantidade de juntas criadas ou destruídas. |
Simulação/físicaSteppedTotal/físicaStepped | Executa a simulação de física. | Reduza a quantidade e a complexidade de corpos físicos simulados. |
Simulação/físicaSteppedTotal/físicaStepped/SpacialFilter/filterStep | Atualiza ilhas de simulação, agrupando peças de acordo com a propriedade da rede, simulação local. Ilhas são grupos não interativos de peças que podem ser simuladas independentemente. | Evite configurar a propriedade da rede com frequência. Mantenha grupos de peças tão longe um do outro para que possam ser simulados separadamente. |
Simulação/físicaSteppedTotal/físicaStepped/worldStep/stepContatos | Atualiza contatos entre objetos. | Reduza a quantidade de corpos colidindo de uma vez, ou use caixas de colisão mais simples. Cubos são melhores que malhas complexas. |
Simulação/físicaSteppedTotal/físicaStepped/worldStep/stepWorld OU stepWorldThrottled | Soluciona problemas de física relacionados a conectores, flutuabilidade e Humanoids . Quando o motor está sobrecarregado e impossibilitado de simular tudo em tempo real, alguns passos podem ser reduzidos (stepWorldThrottled) e apenas "ensaios de tempo real" como Humanoids são simulados. | Depende de onde o tempo está indo com base nas seguintes três fases: stepContacts: testes de colisão de fases estreitas. Solver step: integre o tempo e resolva colisões e outras restrições updateBroadprice: atualize as posições das montagens em um sistema de detecção de colisão e encontrar possíveis colisões de fases estreitas. |
NotificandoMoverAssemblies | Ajuda a rastrear o tempo que os primitivos estão dormindo. | |
Simulação/físicaSteppedTotal/físicaStepped/interpolateNetworkedAssemblies | Interpola montagens não controladas por este parceiro de rede. | Defina o proprietário da rede de peças para este ponto para reduzir isso; embora isso geralmente cause mais trabalho de física ser feito em outros lugares. |
Simulação/处理FallenParts | Remove parts that have fallen below Workspace/FallenPartsDestroyHeight. | Diminua a altura de destruição ou reduza a quantidade de peças que cairão para a altura de destruição. |
Heartbeat/heartbeatInternal/workspaceOnHeartbeat/updateVisuallySleeping | Segunda parte de NotifyMovingAssemblies. | |
Heartbeat/RunService.Heartbeat | Executa funções conectadas ao Class.RunService.Heartbeat``event.Talk para contato com simulação e scripts. A descrição atual é genérica o suficiente para não estar errada | Reduza a quantidade ou carga de funções conectadas a RunService.Heartbeat. |
worldStep/Contactos de Passo | Ajuda a simulação de física a fazer muitos contatos de uma vez. | Reduza o número de objetos colidindo. |
Solução | Ajuda a simulação de física a resolver lotes de movimento de objetos. | |
Interpretação de Mecanismo | Ajuda com InterpolateNetworkAssemblies. |
Interface
Rótulo | Descrição | Dicas de Desempenho |
---|---|---|
Render/PreRender/UpdateInput | Atualiza e dispara todos os eventos relacionados a entrada do usuário se o usuário executou a entrada desde a última janela. | Este é o momento em que os eventos relacionados à entrada do usuário serão Iniciar / executar. É importante tentar não fazer muito trabalho diretamente à medida que você obtém a entrada. Considere fazer uma quantidade mínima de processamento para a entrada e grandes cálculos devem ser empurrados para outro subprocesso que acontece mais tarde. |
Render/PreRender/TweenService | Atualiza objetos sendo tweened usando TweenService e chamadas de conclusão, como as usadas para TweenSize ou TweenPosition. | Reduza o número de objetos sendo ajustados usando TweenService e certifique-se de que os retornos de chamada fazem o menor trabalho possível. |
Renderizar/PreRenderizar/AtualizarUILayouts | Atualiza a posição e tamanho dos elementos da UI. | Reduza a quantidade de elementos da interface sendo redimensionados ou reposicionados dinamicamente, como os gerenciados por UILayout. |
Heartbeat/TweenService | No servidor, atualiza objetos com TweenService. No cliente, isso é feito em um passo de PreRender em vez disso. | Reduza a quantidade de objetos cortados em TweenService. |