MicroProfiler Caminho

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

Este guia de caminhada mostra como usar o MicroProfiler para encontrar um aspecto problemático de uma experiência e identificar a causa raiz. Baixe a experiência, Abra a partir de Arquivo no Studio e siga.


Identificando 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 se sente decente, mas não tão suave quanto deveria 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.

    Nota que a taxa de quadros é inferior a 60 quadros por segundo (FPS).

  3. Abra o MicroProfiler pressionando CtrlAltF6 ( 1> ⌥1> 3> F6 3> ).

    The MicroProfiler after opening it.

    Nota que os tempos de quadro são consistentes — as barras são aproximadamente da mesma altura —, então qualquer coisa que esteja causando a baixa taxa de quadros está executando todos os quadros como se fosse um único quadro, em vez de executar ocasionalmente e causar picos de tempo de quadro.

  4. Pause o MicroProfiler pressionando CtrlP ( P ). Pausando com o atalho de teclado abre 2> modo detalhado2> .

  5. Clique e arraste para panar o gráfico. Observe como uma tarefa particular em seus subprocessos de trabalhador parece estar usando muito tempo de processamento em comparação com o Subprocessoprincipal. Passe o mouse sobre RunService.Stepped e observe quanto tempo está demorando para renderizar.

    Detailed mode with long labels for processes.
  6. Barros empilhados na linha do tempo indicam uma hierarquia de código, então mantenha o mouse em camadas 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 LocalScript etiqueta / rótulo, que indica o nome do script e a Raycast etiqueta / rótulo, que indica que o problema pode estar relacionado a raycasting.

Criando Labels de Solução de Problemas

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

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

    A view of filtering in the Explorer window.

    Uma pesquisa para raycast indica que esta parte do código provavelmente é a culpada 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)

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

  2. Para verificar se esta trecho de código está causando o atraso de renderização, envolva os conteúdos 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

Confirmando e Corrigindo o Problema

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

  2. Nota como o MicroProfiler agora mostra a etiqueta etiqueta / rótulo, indicando que esta função era realmente 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 das estatísticas de diagnóstico novamente.

    Debug stats summary showing 60 FPS.

    Nota a grande melhora na taxa de quadros e na correspondente queda nos tempos de quadro no gráfico MicroProfiler.