Identificando Problemas de Desempenho

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

Identificar problemas de desempenho geralmente significa derrubar uma das três categorias: taxa de quadro (計算), memória ou tempo de carregamento.

O Roblox tem uma série de ferramentas para identificar problemas de desempenho, algumas das quais estão disponíveis no cliente Roblox (e, portanto, no Studio) e algumas das quais só estão disponíveis no Studio. Embora você possa observar o comportamento do cliente diretamente, você deve usar ferramentas para diagnosticar problemas do servidor.

Ferramentas de Diagnóstico

FerramentaDescriçãoLocalizaçãoAtalho de atalhoAmbiente
Consola de DesenvolvedorUma consola com mensagens de log de tempo real, erros e informações detalhadas sobre memória, rede e performancedo script. É útil para ver o consumo de memória, estatísticas de saúde do servidor e estatísticas de desempenho do script e para iniciar o MicroProfiler do cliente ou do servidor.StudioF9Sessões ao vivo, testes do Studio
MicroProfilerUma ferramenta de depuração que mostra quanto tempo de cálculo é gasto em tarefas a cada quadro. Ele pode gerar dumps para análise mostrando uma precisa separação de quadros, tornando-o útil para identificar o problema de desempenho específico. Você pode executar o profiler no cliente ou no servidor, dependendo do lado que tem um problema.Na experiência Ctrl Alt F6 ( ⌘ 1> ⌥1> 3> F63> )Sessões ao vivo, testes do Studio
Barra de Estatísticas de DesempenhoUma barra de ferramentas com estatísticas de desempenho básicas, incluindo o consumo de memória, o CPU, oGPU, a rede de dados enviada e recebida e o tempo de ping.Na experiência Ctrl AltF7 ( 0> ⌥0> 2> F72> )Sessões ao vivo, testes do Studio
Estatísticas de DepuraçãoOverlays com informações detalhadas em torno de gráficos, física, tráfego de rede e FPS.Na experiência Shift F1 , ShiftF2 , 1> Shift1> 3> F33> , 6> Shift6> 8> F48> , 1> Shift1> 3> F53>Sessões ao vivo, testes do Studio
Painel de DesempenhoUm painel com gráficos agregados para uso de memória do cliente e do servidor, avaliarde quadro do cliente, batimento de сердце do servidor e taxas de colisão em tempo real. É útil para analisar padrões de desempenho ao longo do tempo. Veja Monitorando o Desempenho .Painel do CriadorNão AplicávelSessões ao vivo

Computação do Servidor

O bater de fôlego do servidor é limitado a 60 FPS para todas as experiências, então valores mais baixos podem indicar um problema de desempenho. Para verificar o bater de fôleguo do servidor:

  • Com a Console de Desenvolvedor - Na aba Empregos do Servidor, expanda a linha Heartbeat e verifique o valor 2>Passos Por Seg2>, que representa o heartbeat de sua experiência.

  • Com o servidor MicroProfiler - Olhe para a longura de cada quadro para ver se alguns estão demorando mais do que 16.67 ms.

Outro sintoma de degradação do latência do servidor é o aumento da latência (comumente conhecido como ping). Quanto mais tempo o servidor leva para terminar suas tarefas em cada quadro, maior é o tempo que leva para processar os dados de rede enviados e recebidos dos clientes. Para ver o ping médio de todos os jogadores conectados a um servidor, vá para a aba Estatísticas do Servidor na aba Console de Desenvolvedor.

Computação do Cliente

O limite de taxa de quadro padrão é 60 FPS. No entanto, os usuários podem aumentar seu limite de taxa de quadro para 240 FPS.

A taxa de quadros difere wildly entre dispositivos. Por exemplo, um PC de alto nível pode ser capaz de "forçar" um problema calculado e apenas experimentar um declínio de taxa de quadros imperceptível. Se você testar em dispositivos mais antigos, os problemas tendem a ser mais sérios e, portanto, mais fáceis de notar.

Para verificar a taxa de quadros da sua experiência:

  • No cliente, pressione ShiftF5 para mostrar o resumo das estatísticas de diagnóstico.

  • Na aba Ver do Studio, selecione Estatísticas > Sumário para habilitar estatísticas de diagnóstico.

  • Com o MicroProfiler, você pode verificar se o gráfico leva mais tempo do que 16.67 ms.

Memória

Existem várias maneiras de verificar o uso de memória para uma experiência:

  1. Abra a Console de Desenvolvedor e passe para a aba Memória. Essa aba fornece uma visão geral de como a memória está sendo alocada. Use o cliente em vez do Studio para obter as leituras mais precisas.
  2. Habilite a visualização Estatísticas de Desempenho no menu de configurações no cliente para ver um sobreposição com o uso total de memória do cliente.

Alto uso de memória não é necessariamente indicativo de um problema, mas algumas indicações de que você pode precisar investigar mais estão:

  • Uma porcentagem significativa de clientes que aparece no Painel de Desempenho , especialmente um uptick aleatório que coincida com uma atualização. Alguns número de upticks são esperados, mas você deve investigar se suas taxas de uptick aumentam acima de 2-3%.
  • Um erro ocorre ao testar em um dispositivo que você deseja que sua experiência Suporte.
  • O uso de memória do seu servidor excede 3 GB.

Uma parte significativa do consumo de memória de uma experiência no cliente são de recursos, como imagens e malhas, carregados na memória gráfica para que possam ser renderizados. Na Console de desenvolvedor , você pode ver o consumo de memória de recursos sob as seguintes etiquetas:

  • GraphicsMeshParts - memória de gráficos consumida por malhas.
  • Textura de Gráficos - Textura de Gráficos consumida por texturas.

Tempos de Carregamento

Não há ferramentas incorporadas para verificar os tempos de carregamento, mas porque elas não requerem precisão de milisegundos, um cronômetro é normalmente tudo o que você precisa para entender sua base de dados atual e verificar se você fez uma melhoria significativa. Você pode usar um script de cliente em ReplicatedFirst para obter alguma visão de como suas alterações afetam os tempos de carregamento,


local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- quatro décimos
print("Game loaded in " .. roundedLoadTime .. " seconds.")
print("Number of instances loaded: " .. #game.Workspace:GetDescendants())
end)

Para obter mais insights, ative Configurações do Studio > Rede de trabalho > Impressão de tamanho da instância , que imprime as 20 instâncias principais por tamanho e um percentual de descompostura por tipo de instância quando você inicia a experiência no Studio.