MicroProfiler

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O MicroProfiler é uma ferramenta de otimização de desempenho e solução de problemas no Roblox Studio e no cliente Roblox. Ele fornece informações de tempo detalhadas e visuais para todas as tarefas do mecanismo que são executadas durante um quadro, como animar personagens, atualizar física, executar scripts e renderizar geometria. Você pode identificar quais tarefas foram executadas durante qual quadro, quanto tempo essas tarefas levaram para rodar e se alguma delas fez você perder seus objetivos de tempo de quadro.

Tempos de quadro

Para usar o MicroProfiler, você deve entender a relação entre tempo de quadro e taxa de quadros.

  • O tempo de quadro é o quanto um quadro levou para ser renderizado na tela, geralmente medido em milissegundos.
  • A taxa de quadros é o número de quadros renderizados na tela, geralmente medido em quadros por segundo (FPS).

Tempos de quadro mais baixos significam maior taxa de quadros. Divida 1.000 milissegundos (1 segundo) pelo tempo de quadro para obter a taxa de quadros.

Tempo médio de quadroQuadros por segundo
33.33 ms30 FPS
16.67 ms60 FPS
8.33 ms120 FPS
4.17 ms240 FPS

Para um jogo suave, no entanto, não é suficiente ter uma taxa de quadro alta. Você precisa de tempos de quadro consistentes. Por exemplo, se 59 quadros chegarem em 10 milissegundos e um quadro em 410 milissegundos, os jogadores percebem uma grande e abrupta oscilação, mesmo que o jogo esteja rodando a 60 FPS. Se todos os quadros levaram aproximadamente o mesmo tempo para serem renderizados, seu jogo parecerá perceptivelmente mais suave devido a essa consistência, especialmente em taxas de quadros mais baixas.

O MicroProfiler foca totalmente no tempo de quadro. Seu objetivo é ajudar você a identificar picos de tempo de quadro e o que os causou.

Abrir o MicroProfiler

Abrir o MicroProfiler varia de acordo com a plataforma:

  • No cliente móvel, abra o menu Configurações e ative o MicroProfiler On. Então, de uma máquina de desenvolvimento na mesma rede, use seu navegador da web para navegar até o endereço IP e porta fornecidos.

    A interface do MicroProfiler no móvel.

    Esta captura de tela mostra um endereço IP de 172.18.56.105 e uma porta de 1338, então você navega para 172.18.56.105:1338. Dependendo da configuração de rede do seu dispositivo, você pode ver vários endereços IP. Se um não funcionar, tente o próximo.

  • No cliente desktop, pressione CtrlF6 (F6).

  • No Studio, pressione CtrlF6 (F6).

Geralmente, o cliente móvel é o melhor lugar para fazer perfil do seu jogo. A maioria dos jogadores no Roblox usa telefones e tablets, e esses dispositivos têm severas limitações térmicas e de energia que limitam seu desempenho. Se o seu jogo funciona bem em um tablet Android de médio porte, ele quase certamente tem um desempenho muito, muito melhor em um desktop para jogos.

Noções básicas do MicroProfiler

O MicroProfiler tem dois componentes principais: o gráfico de barras de tempo de quadro e a linha do tempo de tarefas detalhadas.

  • O gráfico de tempo de quadro percorre a parte superior da interface e mostra quanto tempo cada quadro levou para renderizar. Barras mais altas significam tempos de quadro mais longos.
  • A linha do tempo mostra todas as tarefas individuais que foram executadas durante o quadro. Barras mais largas representam tarefas que levaram mais tempo para serem executadas.

Um fluxo de trabalho típico no MicroProfiler é usar o gráfico de tempo de quadro para identificar um pico (uma barra mais alta) e então usar a linha do tempo para identificar quais tarefas causaram o pico. Então você pode verificar a Referência de Tags para informações sobre a tarefa e como melhorar seu desempenho.

Exemplo de um pico de tempo de quadro.

Gráfico de tempo de quadro

A altura de cada barra indica o número de milissegundos que levou para completar o quadro. Os quadros mais recentes estão à direita. Passe o mouse sobre um quadro para obter algumas informações básicas sobre o uso de CPU e GPU.

O gráfico de quadros do Microprofiler, mostrando quadros azuis e informações detalhadas sobre os quadros.
  • Barras laranjas são quadros onde o Tempo de Parede de Trabalhos excede o Tempo de Parede de Renderização. Nestes quadros, pelo menos um dos threads de trabalho, que fazem coisas como executar scripts, calcular física e reproduzir animações, levou mais tempo para executar do que o thread de renderização principal.

    Se o jogo não está alcançando seus objetivos de tempo de quadro e tem um grande número de quadros laranjas, as causas comuns são scripts, física e animações. Veja Melhorar desempenho.

  • Barras azuis são quadros onde o Tempo de Parede de Renderização excede o Tempo de Parede de Trabalhos. Nestes quadros, o thread de renderização principal levou mais tempo do que qualquer um dos threads de trabalho.

    Se o jogo não está alcançando seus objetivos de tempo de quadro e tem um grande número de quadros azuis, isso indica um gargalo de renderização. Causas comuns são densidade excessiva de objetos, movimentação de objetos e iluminação. Veja Melhorar desempenho.

  • Barras vermelhas são quadros onde duas condições são verdadeiras:

    • Tempo de Parede de Renderização excede Tempo de Parede de Trabalhos
    • Tempo de Espera da GPU é maior que 2,5 milissegundos

    Barras vermelhas são menos comuns do que laranjas e azuis e são frequentemente o resultado de complexidade excessiva de objetos, tamanho de textura e efeitos visuais. A otimização é similar à das barras azuis. Veja Melhorar desempenho.

Tarefas minúsculas no final de um quadro podem, às vezes, afetar o Tempo de Parede de Trabalhos e o Tempo de Parede de Renderização, o que é um bom motivo para se concentrar mais no tempo de quadro do que na cor do quadro. Não há uma "boa" cor para se esforçar. Uma mistura de laranja, azul e vermelho não é problemática desde que você esteja alcançando seus objetivos de tempo de quadro. Se você não está alcançando seus objetivos de tempo de quadro, as cores podem indicar onde otimizar.

Linha do tempo

  • Clique com o botão esquerdo e arraste para mover a linha do tempo. Em uma máquina com muitos núcleos de CPU, pode ser necessário mover para cima ou para baixo bastante para encontrar o thread que está executando uma tarefa específica.

    O lado esquerdo da visualização detalhada do Microprofiler, com linhas para threads.
  • O scroll aumenta e diminui o zoom da linha do tempo. Combinado com os rótulos de milissegundos no topo da linha do tempo, você pode ter uma noção de quanto tempo uma tarefa levou em um sentido absoluto, mas também quanto tempo levou em relação a outras tarefas.

    A visualização detalhada do Microprofiler com numerosos rótulos horizontais.
  • A sobreposição verde no gráfico de barras indica o número de quadros atualmente visíveis na linha do tempo—seu nível de zoom. Clique com o botão esquerdo em uma barra de quadro para pular para essa posição na linha do tempo.

    Você pode precisar ajustar seu nível de zoom, mas passar o mouse sobre uma barra destaca o quadro na linha do tempo. Linhas cinzas claras delimitam quadros.

    O gráfico de barras do MicroProfiler com sobreposição verde para mostrar o nível de zoom.
  • Rótulos que aparecem diretamente abaixo de outro rótulo indicam tarefas que são executadas como parte da tarefa de nível superior.

    Em vez da tarefa pai, você normalmente quer solucionar os piores desempenhos nas tarefas filhas; uma tarefa pai não pode ser menor do que a soma de suas tarefas filhas.

  • Clique com o botão direito em um rótulo para aumentar a linha do tempo exatamente para a duração daquela tarefa.

  • Se a quantidade de informações for avassaladora, use o menu Grupos ou Threads para filtrar a linha do tempo. Por exemplo, você pode querer ver apenas tarefas de Renderização na thread principal.

    A visualização ao passar o mouse sobre um rótulo, com o Grupo destacado.
  • Use CtrlF (F) para pular para a ocorrência de uma tarefa que leva mais tempo no dump. Por exemplo, computeLightingPerform é executado em cada quadro do cliente. Se você pesquisar por isso em um dump com 128 quadros, pode pular para o quadro onde levou mais tempo para completar.

Threads

Como muitos programas, o Roblox usa vários threads para executar sequências de tarefas ao mesmo tempo. O MicroProfiler exibe o nome da thread no lado esquerdo da linha do tempo.

O lado esquerdo da visualização detalhada do Microprofiler, com linhas para threads.

Existem três tipos importantes de threads:

  • Principal ("RBX Main"): Manipula tarefas de renderização baseadas em CPU. Processa entradas, Humanoids, animações/tweening, propriedade física, som e espera retomar scripts. Também atualiza interfaces do Studio e coordena os outros threads.

  • Trabalhador ("RBX Worker"): Auxilia o thread principal com rede, física e busca de caminho. Devido ao número de núcleos em CPUs modernas, você provavelmente tem muitos threads de trabalho, a maioria dos quais está em um estado de espera a qualquer momento.

  • Renderização ("GPU"): Segue uma lógica de "preparar, executar, apresentar". Comunica-se com a unidade de processamento gráfico (GPU) do dispositivo.

    • Preparar: Informações do thread principal são usadas para atualizar modelos de renderização.
    • Executar: Emitir comandos de renderização, incluindo interfaces 2D.
    • Apresentar: Sincroniza com a GPU.

Perfis de script personalizados

Se seus scripts estão executando tarefas complicadas, você pode fazer o perfil de partes críticas do código para garantir que não estão levando muito tempo. Envolva o código com debug.profilebegin() e debug.profileend() para cronometrar tudo feito entre essas chamadas de função e criar um rótulo na linha do tempo do MicroProfiler.


local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Exemplo de trabalho árduo: trocar duas variáveis 200.000 vezes
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
Vários rótulos no MicroProfiler, com um rótulo personalizado ocupando a maior parte do tempo de processamento.

Pela sua duração na linha do tempo, você pode perceber que a função está usando muito tempo de processamento em comparação com outras tarefas.

Salvar dados de quadros

Se você deseja salvar um conjunto de dados de quadros para revisão posterior (ou para compartilhar com outra pessoa), use o botão Salvar para arquivo. O MicroProfiler salva os dados de quadro em um arquivo HTML autônomo chamado microprofile-<data>-<hora>.html.

O botão salvar para arquivo na interface web.

No cliente desktop ou no Studio, use o menu Dump. Em ambos os casos, o MicroProfiler salva automaticamente o arquivo no diretório de logs do Roblox:

  • No Windows, verifique %LOCALAPPDATA%\Roblox\logs.

    Se você usar o aplicativo da Plataforma Universal do Windows (UWP), verifique \Users\<nome_de_usuário>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\.

  • No macOS, verifique ~/Library/Logs/Roblox.

Perfil do servidor

Além de fazer o perfil do cliente, você pode capturar breves dumps da atividade do servidor:

  1. No cliente desktop, entre em um jogo para o qual você tem permissões de edição.

  2. Abra o Console do Desenvolvedor com CtrlF9 (F9).

  3. No menu suspenso, selecione MicroProfiler.

  4. Na guia Servidor, especifique o número de quadros a capturar (máximo de 60) e o número de segundos para atrasar antes de iniciar a captura (máximo de 4).

  5. Clique em Iniciar gravação do servidor.

    A tela do MicroProfiler no Console do Desenvolvedor.

    Após alguns segundos, o Console do Desenvolvedor fornece o caminho para o arquivo, que é o mesmo caminho de um dump padrão.

Recursos exclusivos da web

O MicroProfiler tem duas interfaces de usuário: a interface web (móvel e dumps) e a interface desktop (cliente e Studio). Recomendamos usar a interface web sempre que possível. Em geral, as duas funcionam de maneira semelhante, mas a interface web tem alguns recursos extras:

  • Use o menu Raio-X para habilitar ou desabilitar a codificação de cores para alocação de memória.

    A visualização web do MicroProfiler com raio-x habilitado.
    • Quadros mais claros dentro do gráfico de barras principal indicam maior alocação de memória.
    • Partes mais claras da barra de visualização e rótulos mais claros na linha do tempo indicam partes do quadro com maior alocação de memória.
    • No modo raio-x, pressione C para mostrar o tamanho total das alocações de memória em vez do número de alocações.
  • Use o menu Exportar para exportar um gráfico de chama de CPU ou memória, uma visualização especializada que agrega todas as pilhas de chamadas incluídas no dump, mantém a hierarquia pai-filho e dimensiona-as com base na duração. Gráficos de chama são especialmente úteis para identificar tarefas que não fazem você perder seus objetivos de tempo de quadro (e que, portanto, são difíceis de perceber), mas que rodam com tanta frequência que seu tempo de processamento se torna significante.

    O gráfico de chama do MicroProfiler na interface da web.

    Você também pode criar gráficos de chama no Studio, embora apenas para scripts (tempo de execução e alocações de memória). Comparados aos gráficos de chama baseados na web, os do Studio são de cima para baixo em vez de baixo para cima e suportam tempos de captura dramaticamente mais longos.

    O gráfico de chama do MicroProfiler no Studio.
  • Arraste e solte um segundo arquivo de dump na interface web para gerar um gráfico de chama de diff, que pode ajudar você a identificar melhorias ou regressões no desempenho do seu jogo ao longo do tempo. Clique em Combinar & Comparar para exportar um novo arquivo HTML.

    O construtor do gráfico de chama de diff do MicroProfiler mostrando os lados esquerdo e direito.

    O gráfico de chama de diff destaca o dump (esquerdo ou direito) que consome mais CPU ou memória, com cores mais brilhantes indicando uma diferença maior.

    O gráfico de chama de diff do MicroProfiler.

Recursos exclusivos do desktop

Na linha do tempo do desktop, clique com o botão esquerdo em um rótulo para adicioná-lo a um gráfico de linha no canto inferior direito. O gráfico mostra o tempo que a tarefa leva em cada quadro. Usando este gráfico, você pode testar o desempenho de apenas certas tarefas no seu jogo. Quando terminar, clique com o botão direito no gráfico para ocultá-lo.

O gráfico mostrando quanto tempo as tarefas levam por quadro.

Este gráfico é sincronizado com as barras do profiler principal. O intervalo de quadros atualmente selecionado é destacado em verde no gráfico. Você também pode clicar em qualquer lugar deste gráfico para recentralizar a visualização do profiler principal para aquele quadro específico, o que é útil para encontrar picos na visualização detalhada.

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.