Passeio do MicroProfiler

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

Este tutorial mostra como usar o MicroProfiler para encontrar um aspecto problemático de uma experiência e identificar a causa raiz.Baixe a experiência, Abrir a partir do Arquivo no Studio e siga em frente.


Identifique o problema

  1. Depois de abrir a experiência no Studio, comece a testá-la com F5 ou o botão Jogar .

  2. A taxa de quadros parece decente, mas não tão suave como deveria ser para uma experiência deste tamanho e alcance.Navegue até a aba Ver e clique em Resumo sob Estatísticas.

    Debug stats summary showing 45 FPS.

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

  3. Abra o MicroProfiler pressionando CtrlAltF6 ( F6 ).

    The MicroProfiler after opening it.

    Observe que os tempos de quadro são consistentes —as barras são aproximadamente da mesma altura—então, o que quer que esteja causando a baixa taxa de quadros está executando cada quadro individualmente, em oposição a executar ocasionalmente e causar picos de tempo de quadro.

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

  5. Clique e arraste para mover o gráfico.Observe como uma tarefa específica nos subprocessos do trabalhador parece usar muito tempo de processamento em comparação com o Subprocessoprincipal.Passe o mouse sobre RunService.Stepped e note quanto tempo está levando para renderizar.

    Detailed mode with long labels for processes.
  6. Barras empilhadas na linha do tempo indicam uma hierarquia de código, então continue pairando em camadas mais baixas e mais baixas para tentar identificar o problema.

    On-hover details for various processes, with LocalScript highlighted. On-hover details for various processes, with Raycast highlighted.

    Observe a etiqueta / rótuloLocalScript que indica o nome do script e a etiqueta / rótuloRaycast 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 reprodução e filtre a janela do Explorer por localscript para encontrar o arquivo.

    A view of filtering in the Explorer window.

    Uma busca por raycast indica que esta parte do código é provavelmente o culpado pela má performance da experiência:


    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 de 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

Confirme e corrija o problema

  1. Comece a testar a experiência e abra o MicroProfiler novamente.

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

    MicroProfiler detailed view with 'Raycast Spam' visible.
  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 a experiência novamente e verifique o resumo de estatísticas de depuração novamente.

    Debug stats summary showing 60 FPS.

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