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 aprofundar-se em uma das três categorias: taxa de quadros (compute), memória ou tempo de carregamento.

Roblox possui várias ferramentas para identificar problemas de desempenho, algumas das quais estão disponíveis no cliente Roblox (e, portanto, no Studio) e outras que estão disponíveis apenas no Studio. Enquanto você pode observar o comportamento do cliente diretamente, você deve usar ferramentas para diagnosticar problemas no servidor.

Ferramentas de diagnóstico

FerramentaDescriçãoLocalizaçãoAtalho de tecladoAmbiente
Console do DesenvolvedorUm console com mensagens de log em tempo real, erros e informações detalhadas sobre memória, rede e desempenho de scripts. É útil para visualizar o consumo de memória, principais estatísticas de saúde do servidor, estatísticas de desempenho de scripts e para iniciar o MicroProfiler do cliente ou do servidor.
Studio

In-Game
F9
Testes no Studio

Sessões Ao Vivo
MicroProfilerUma ferramenta de depuração que detalha quanto tempo computacional é gasto em tarefas a cada quadro. Ela pode gerar dumps para análise mostrando uma divisão precisa de quadros individuais, tornando-a útil para identificar a tarefa específica que causa problemas de desempenho. Você pode executar o profiler tanto no cliente quanto no servidor, dependendo de qual lado apresenta um problema.
Studio

In-Game
CtrlAltF6 (F6)
Testes no Studio

Sessões Ao Vivo
Análise de CenaFornece informações comparativas sobre os recursos que suas cenas de cliente e servidor estão usando e quais instâncias são responsáveis por esse uso de recursos.StudioN/A
Testes no Studio
Estatísticas de DesempenhoUma barra de ferramentas com estatísticas básicas de desempenho, incluindo consumo de memória, CPU, GPU, dados de rede enviados e recebidos e tempo de ping.
In-Game
CtrlAltF7 (F7)
Testes no Studio

Sessões Ao Vivo
Estatísticas de DebugSobreposições com informações detalhadas sobre gráficos, física, tráfego de rede e FPS.
Studio

In-Game
ShiftCtrlF1 (ShiftF1), ShiftCtrlF2 (ShiftF2), ShiftCtrlF3 (ShiftF3), ShiftCtrlF4 (ShiftF4), ShiftCtrlF5 (ShiftF5)
Testes no Studio

Sessões Ao Vivo
Simulação de RedePropriedades que simulam condições de rede do mundo real, como latência, jitter e perda de pacotes, para testar conexões.
Studio
AltS(S)
Testes no Studio
Painel de DesempenhoUm painel com gráficos agregados para uso de memória do cliente e do servidor, taxa de quadros do cliente, batimentos do servidor e taxas de falhas em tempo real. É útil para analisar padrões de desempenho ao longo do tempo. Veja monitorando desempenho.
Painel do Criador
N/A
Sessões Ao Vivo

Computação do servidor

O batimento do servidor é limitado a 60 FPS para todos os jogos, portanto, valores mais baixos podem indicar um problema de desempenho. Para verificar o batimento do servidor:

  • Com o Console do Desenvolvedor - Na aba Server Jobs, expanda a linha Heartbeat e verifique o valor de Steps Per Sec, que representa o batimento do seu jogo.

  • Com o MicroProfiler, você pode verificar o gráfico para ver se o quadro leva mais de 16,67 ms.

Outro sintoma de batimento do servidor degradado é o aumento da latência (comumente conhecida como ping). Quanto mais tempo o servidor levar para concluir seus cálculos a cada quadro, mais tempo levará para processar os dados de rede enviados e recebidos dos clientes. Para verificar o ping médio de todos os jogadores conectados a um servidor, vá para a aba Server Stats no Console do Desenvolvedor.

Computação do cliente

O limite padrão de taxa de quadros do cliente é 60 FPS. No entanto, os usuários podem aumentar seu limite de taxa de quadros para até 240 FPS no Windows.

A taxa de quadros varia bastante entre os dispositivos. Por exemplo, um PC de alto desempenho pode "forçar" um problema computacional e apenas experimentar uma queda imperceptível na taxa de quadros. Se você testar em dispositivos de menor desempenho, os problemas tendem a ser mais severos e, portanto, mais fáceis de perceber.

Para verificar a taxa de quadros do seu jogo:

  • No cliente, pressione ShiftF5 para mostrar o resumo das estatísticas de depuração.

  • No menu JanelaDesempenho do Studio, ative Estatísticas para habilitar as estatísticas de depuração.

  • Com o MicroProfiler, você pode verificar o gráfico para ver se o quadro leva mais de 16,67 ms.

Memória do servidor

Tente manter o uso de memória do servidor abaixo de 50%. A memória total do servidor usa a seguinte fórmula:

6.25 GiB + (100 MiB * maior_número_de_jogadores_conectados)

Por exemplo, um servidor com 30 jogadores conectados tem aproximadamente 9,18 GiB de memória total. Os servidores ganham memória quando jogadores se conectam, mas não a perdem quando jogadores se desconectam. Se 10 jogadores saírem, o servidor ainda terá 9,18 GiB de memória, em vez de encolher para 8,2 GiB.

Quando servidores são desligados (por exemplo, quando estão vazios ou como parte do processo de atualização), suas substituições começam com a quantidade base de memória e começam a escalar conforme os jogadores se conectam.

Memória do cliente

Existem várias maneiras de verificar o uso de memória para um jogo:

  1. Abra o Console do Desenvolvedor e vá para a aba Memória. Esta aba fornece uma divisão 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 a partir do menu de configurações no cliente para ver uma sobreposição com o uso total de memória do cliente.

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

  • Uma porcentagem significativa de falhas que aparecem no Painel de Desempenho, particularmente um aumento repentino que coincide com uma atualização. Um certo número de falhas é esperado, mas você deve investigar se suas taxas de falha aumentam acima de 2-3%.
  • Uma falha ocorre enquanto testa em um dispositivo que você deseja que seu jogo suporte.

Uma parte significativa do consumo de memória de um jogo no cliente vem de ativos, como imagens, malhas e arquivos de áudio, carregados na memória. No Console do Desenvolvedor, verifique os seguintes rótulos sob PlaceMemory:

  • GraphicsMeshParts - Memória gráfica consumida por malhas.
  • GraphicsTexture - Memória gráfica consumida por texturas.
  • Sounds - Memória consumida por arquivos de áudio.

Tempos de carregamento

Não existem ferramentas integradas para verificar tempos de carregamento, mas como eles não requerem precisão em milissegundos, um cronômetro geralmente é tudo que você precisa para entender sua linha de base atual e verificar se você fez uma melhoria substancial. Você pode usar um script de cliente em ReplicatedFirst para ter uma ideia de como suas alterações impactam os tempos de carregamento, mas este script não fornece uma medição completa e de ponta a ponta:


local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- quatro casas decimais
print("Jogo carregado em " .. roundedLoadTime .. " segundos.")
print("Número de instâncias carregadas: " .. #workspace:GetDescendants())
end)

Para uma visão adicional, ative Print Join Size Breakdown a partir da aba Rede das Configurações do Studio para imprimir as 20 principais instâncias por tamanho e uma divisão percentual por tipo de instância quando você iniciar o jogo no Studio.

Ping

As duas principais medições de ping (latência) são ping de rede e ping de dados.

Ping de rede é o tempo de ida e volta medido desde que o cliente envia um pacote de dados de rede até quando recebe a resposta de eco do servidor. É semelhante ao que seria reportado como tempo pela utilidade de rede ping de uso geral.

O ping de rede é visível na barra de Estatísticas de Desempenho. Ele é principalmente afetado pelo comprimento do caminho de rede entre o cliente e o servidor e está fora do seu controle. No entanto, você pode simular ping e outras condições de rede usando simulação de rede ao testar no Studio.

Ping de dados é o tempo de ida e volta medido desde que o cliente envia dados de forma confiável através do sistema de replicação até quando recebe uma resposta de eco do sistema de replicação do servidor. Ele inclui o tempo gasto nas filas de replicação tanto do cliente quanto do servidor, juntamente com retransmissões semelhantes ao TCP de pacotes perdidos ou corrompidos.

Ping de dados é semelhante a enviar um evento remoto confiável do cliente, recebê-lo no servidor e, em seguida, enviar um evento remoto confiável do servidor para o cliente em resposta. Como o ping de dados também inclui o tempo gasto na rede entre o cliente e o servidor, ele é maior ou igual ao ping de rede.

O ping de dados médio para todos os jogadores conectados a um servidor é visível na aba Server Stats do Console do Desenvolvedor. O ping de dados para um cliente individual é visível usando ShiftF3 para exibir as estatísticas de depuração de rede.

O ping de dados é afetado tanto pelo caminho da rede quanto pelos atrasos de enfileiramento de replicação. Quando o servidor gera dados de replicação mais rápido do que a rede pode enviá-los (ou mais rápido do que o cliente pode processá-los), os dados devem esperar nas filas de replicação. Alguma diferença entre o ping de dados e o ping de rede é normal devido tanto às retransmissões de rede quanto à forma como os dados de rede são processados pelo aplicativo Roblox. No entanto, se o ping de dados for significativamente maior que o ping de rede, use o MicroProfiler para ver o tráfego de rede. Para sugestões de otimização, consulte rede e replicação.

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