Use o VisualVM para exportar o heap dump do jogo e relatar problemas de memória
Guia de feedback de problemas de memória para jogadores: confirme o processo do Minecraft, use o VisualVM para exportar e salvar um heap dump .hprof, e anexe os passos de reprodução e os logs para análise dos desenvolvedores.
Available in English
A complete English translation of this article is available.
Machine translation
This page's Português was produced automatically by the translation service and may contain mistakes.
Cenários de aplicação
Quando o jogo apresentar o alerta de memória mostrado na imagem abaixo, ou quando o uso de memória continuar aumentando após entrar e sair do save repetidamente, você pode, conforme este artigo, exportar um heap dump(".hprof"),para análise dos desenvolvedores. O heap dump registra os objetos no heap Java no momento da exportação e suas relações de referência.
O alto uso de memória ou o aparecimento de avisos não comprovam, por si só, a existência de um vazamento de memória. Ao reportar, explique o que você fez antes de o problema ocorrer e, se possível, exporte depois que o problema ocorrer e enquanto o jogo ainda estiver respondendo; após sair do jogo, não será mais possível obter o heap dump daquele momento.
1. Preparação
A partir de site oficial do VisualVMBaixe e inicie o VisualVM.
Inicie o modpack que precisa ser investigado e tente reproduzir o problema, por exemplo, entrando e saindo repetidamente do mesmo save, ou executando operações que façam a memória crescer continuamente.
Reserve espaço em disco suficiente: um heap dump pode chegar a vários GB, e tanto a geração de arquivos temporários quanto o salvamento como arquivo precisam de espaço.
Durante a exportação, o jogo pode apresentar pausas perceptíveis; aguarde a conclusão da operação.
2. Selecione o processo do jogo
No lado esquerdo do VisualVM Aplicações → Local para encontrar o processo Java em execução.
Dê um duplo clique no processo candidato e, em Overview combine a classe principal, o caminho da instância do modpack nos parâmetros da JVM e outras informações para confirmar que ele pertence ao jogo atual; o nome do processo varia conforme o launcher e a forma de inicialização, então não julgue apenas pela presença de "Prism" no nome.
Selecione o processo que realmente executa o Minecraft. Não selecione o VisualVM, o Gradle Daemon, o Gradle Wrapper ou o IntelliJ IDEA. Ao investigar um servidor independente, selecione o processo Java do servidor.
A imagem abaixo mostra apenas a localização da lista de processos; o jogo não foi iniciado no momento da captura de tela; o Gradle Daemon selecionado não é o processo do jogo.
3. Exportar e salvar o heap dump
Alterne para a Monitor página do processo de destino, onde é possível ver a curva de memória heap e, no canto superior direito, Perform GC e Heap Dump botões. A imagem abaixo ainda usa o Gradle Daemon para demonstrar a posição dos botões; na operação real, confirme se a aba atual pertence ao processo do jogo.
Depois de reproduzir o problema no jogo, volte para a página Monitor do VisualVM e confirme que o gráfico Heap está sendo atualizado.
Se o desenvolvedor pedir para observar o estado após a coleta de lixo, você pode clicar uma vez em Perform GC, aguardar a conclusão da operação e indicar no feedback que essa ação foi executada; para uma coleta normal, pode ir diretamente para a próxima etapa, sem precisar clicar repetidamente.
Clique em Heap Dump, aguarde a geração do heap dump. Durante esse período, o jogo pode travar; o tempo necessário depende de fatores como o tamanho do heap. Após a conclusão, o VisualVM exibirá um nó de heap dump e abrirá a aba correspondente.
Na árvore Applications à esquerda, clique com o botão direito no nó de heap dump recém-gerado e selecione Save As..., salve como
.hprofarquivo.Aguarde a conclusão do salvamento, confirme no diretório de salvamento que o arquivo foi gerado e então saia do jogo.
Após gerar o heap dump, também é necessário executar Save As. A documentação oficial do VisualVM explica que um heap dump é apenas um arquivo temporário até ser salvo explicitamente. Consulte Navegando por um Heap Dump.
4. Enviar feedback de problemas
Envie o problema pelo link de feedback no canto superior direito do site oficial, ou pela entrada de Issues no repositório GitHub fornecido pelo site oficial..hprof Quando o arquivo for grande, você pode primeiro compactá-lo em .zip ou .gz; se a entrada de feedback não permitir upload, use um serviço de compartilhamento de arquivos para enviar e forneça no feedback o link para download e o código de extração necessário.
Por favor, forneça também as seguintes informações para facilitar aos desenvolvedores a reprodução do problema:
Versão do modpack, versão do Java e a memória máxima alocada para o jogo.
Passos para reproduzir: quais ações foram realizadas, quantas vezes foram repetidas e após quanto tempo surgiu o aviso ou lag perceptível.
Estado no momento da exportação: ainda estava no save ou já havia retornado ao menu principal; se foi executado Perform GC.
.hprofarquivo ou link de download, bem como o desta execuçãologs/latest.log; se houver relatório de crash, anexe-o também.
Materiais de referência
Comments
0No comments yet.
Your comment appears under your display name.