Guia do MicroProfiler

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

Este guia mostra como usar o MicroProfiler para encontrar um aspecto problemático de um jogo e identificar a causa raiz. Baixe o jogo, Abrir a partir do arquivo no Studio e siga junto.


Identificar o problema

  1. Depois de abrir o jogo no Studio, comece a testá-lo com F5 ou o botão Jogar.

  2. A taxa de quadros parece razoável, mas não tão suave quanto deveria para um jogo desse tamanho e escopo. Pressione CtrlShiftF5 (ShiftF5) para mostrar a sobreposição Resumo de Desempenho.

    Resumo de desempenho mostrando 45 FPS.

    Note que a taxa de quadros está abaixo de 60 quadros por segundo (FPS).

  3. Abra o MicroProfiler pressionando CtrlAltF6 (F6).

    O MicroProfiler após ser aberto.

    Note que os tempos de frame são consistentes—as barras são aproximadamente da mesma altura—portanto, qualquer que seja a causa da baixa taxa de quadros, está executando em cada frame em vez de ocasionalmente e causando picos de tempo de frame.

  4. Pause o MicroProfiler pressionando CtrlP (P). Pausar com o atalho do teclado abre o modo detalhado.

  5. Clique e arraste para mover o gráfico. Note como uma tarefa específica nas threads de trabalho parece estar usando muito tempo de processamento em comparação com a thread principal. Passe o mouse sobre RunService.Stepped e note quanto tempo está levando para renderizar.

    Modo detalhado com rótulos longos para processos.
  6. Barras empilhadas na linha do tempo indicam uma hierarquia de código, então continue passando o mouse sobre camadas cada vez mais baixas para tentar identificar o problema.

    Detalhes ao passar o mouse sobre vários processos, com LocalScript destacado. Detalhes ao passar o mouse sobre vários processos, com Raycast destacado.

    Note o rótulo LocalScript, que indica o nome do script, e o rótulo Raycast, que indica que o problema pode estar relacionado ao raycasting.

Criar rótulos de solução de problemas

Agora que o MicroProfiler forneceu um ponto de partida, você pode solucionar o código problemático.

  1. Pare o teste de jogo e filtre a janela Explorer por localscript para encontrar o arquivo.

    Uma visão do filtro na janela Explorer.

    Uma busca por raycast indica que essa parte do código é provavelmente a culpada pelo mau desempenho do jogo:


    local RAYS_PER_SECOND = 1500
    local function onStepped()
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    end
    RunService.Stepped:Connect(onStepped)

    Especificamente, você pode ver que o código está lançando 1.500 raios por segundo em direções aleatórias.

  2. Para verificar se essa parte do código está causando o atraso na renderização, envolva o conteúdo da função com debug.profilebegin() e debug.profileend():


    local function onStepped()
    debug.profilebegin("Raycast Spam")
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    debug.profileend()
    end

Confirmar e corrigir o problema

  1. Comece a testar o jogo e abra o MicroProfiler novamente.

  2. Note como o MicroProfiler agora mostra o rótulo personalizado, indicando que essa função foi de fato a causa raiz.

    Visualização detalhada do MicroProfiler com 'Raycast Spam' visível.
  3. Pare o teste de jogo.

  4. Exclua ou comente a função onStepped() e a conexão RunService.Stepped:Connect(onStepped).

  5. Comece a testar o jogo novamente e verifique o Resumo de Desempenho novamente.

    Resumo de desempenho mostrando 60 FPS.

    Note a enorme melhoria na taxa de quadros e a correspondente queda nos tempos de frame no gráfico do MicroProfiler.

©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.