Tudo o que você precisa saber sobre o Memory Profiler 1.0.0

AGNESE CAGLIO / UNITY TECHNOLOGIESSenior Product Designer
Jan 30, 2023|10 Min
Tudo o que você precisa saber sobre o Memory Profiler 1.0.0
Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.

O novo Memory Profiler – versão 1.0.0 – oferece melhorias ao conjunto de criação de perfil que oferecem uma visão mais completa do uso da memória e tornam mais fácil e rápido otimizar o desempenho ou detectar problemas de memória.

Nós, da equipe do Profiler, estamos muito felizes em anunciar que, em setembro de 2022, o pacote Memory Profiler passou de Experimental para Verificado e agora está acessível para todos que usam o Unity 2022.2 Tech Stream.

Perfilador de Memória: Uma visão geral

Otimizar a memória é crucial para aplicativos executados em dispositivos com recursos limitados, a fim de evitar que eles fiquem sem memória. Além disso, se você estiver planejando distribuir em vários dispositivos, sua pegada de memória pode precisar de ajustes finos para garantir que você aproveite o melhor de cada plataforma.

O Memory Profiler é uma ferramenta que ajuda você a lidar com esses desafios, permitindo que você tire um instantâneo do seu jogo e analise o uso de memória em um momento específico.

Ao tirar um “instantâneo” do seu jogo, você pode ver o que está ocupando a maior parte da memória ou identificar problemas que podem fazer com que os aplicativos travem.

Observação: Embora os recursos completos e o rastreamento de memória do Memory Profiler estejam disponíveis apenas a partir da versão 2022.2, você pode aproveitar a nova interface do usuário (IU) para inspecionar capturas mais antigas abrindo o Memory Profiler em um projeto vazio da versão 2022+ e importando instantâneos mais antigos.

Como chegou aqui

O Memory Profiler foi lançado originalmente como um pacote experimental há alguns anos, mas esta versão inclui uma grande reformulação da interface do usuário e da experiência do usuário (UX) para torná-lo mais rápido e fácil de usar.

O pacote experimental original foi usado por alguns dos primeiros usuários e ajudou em muitos casos a identificar problemas de memória. No entanto, era difícil de manejar, lento e exigia conhecimento especializado em sua primeira iteração.

Quando começamos a trabalhar em uma nova versão do pacote, tínhamos as seguintes intenções em mente:

  • Simplifique os fluxos de trabalho mais comuns e importantes para que você possa identificar e corrigir problemas mais rapidamente
  • Fornecer informações mais completas e confiáveis para facilitar a comparação do uso de memória entre dispositivos (também usando criadores de perfil específicos da plataforma)
  • Exiba as informações de uma forma mais acessível, para que usuários sem conhecimento profundo de memória ainda possam otimizar aplicativos de forma eficaz

Para conseguir isso, trabalhamos em estreita colaboração com os primeiros usuários do pacote experimental para entender suas necessidades e problemas, e iteramos diversas vezes no design para garantir que ele oferecesse a melhor experiência do usuário possível.

Graças à contribuição deles, nossa equipe conseguiu otimizar e simplificar bastante a ferramenta, reduzindo jargões e facilitando a inspeção de objetos, detalhes e dependências diretamente na ferramenta.

O que tem dentro

O Memory Profiler consiste em três seções principais que mostram sua nova e aprimorada interface de usuário, que detalharemos aqui:

  • Lista de instantâneos
  • Uma seção principal, que é dividida em três visualizações de fluxo de trabalho (Resumo, Objetos Unity e Toda a Memória)
  • Detalhes da seleção
Lista de instantâneos

A lista de instantâneos é a área onde você pode capturar e ver instantâneos que você tirou no seu jogo, bem como informações de alto nível sobre o uso de memória e a data da captura. Aqui, você pode capturar instantâneos com o botão “Capturar” na barra de ferramentas ou – se nenhum instantâneo estiver disponível – através do botão de instantâneo na seção Principal.

Você também pode ver se o uso de memória está mudando entre os snapshots e ter uma ideia se o desempenho do projeto está melhorando ou não.

Por fim, você também pode usar a lista de Snapshots para selecionar se deseja visualizar snapshots individuais ou snapshots comparados (mais informações sobre isso abaixo).

Lista de instantâneos
A seção principal

Esta é a área central do Memory Profiler, dividida em três visualizações de fluxo de trabalho: Resumo, Objetos Unity e Toda a Memória. Cada uma dessas visualizações pode ser acessada nas guias na parte superior da seção Principal.

A exibição Resumo é a exibição padrão que é aberta quando você carrega ou captura um instantâneo. Ele fornece informações sobre quanta memória você está usando, quanta está “residente” no dispositivo e quanta está comprometida, mas não está atualmente no dispositivo. Ele também fornece informações sobre como a memória é distribuída entre as categorias, para simplificar a escolha de onde começar sua investigação.

Por fim, a visualização Resumo fornece pontos de entrada para análises mais detalhadas, como “Principais objetos do Unity na memória” ou “Detalhamento de memória gerenciada”.

Seção principal – Visão resumida

A visualização de objetos do Unity é onde você provavelmente passará mais tempo. Ele lista todos os principais tipos de objetos carregados na memória, como texturas, shaders, fontes e assim por diante. Normalmente, é aqui que você pode identificar objetos que são muito grandes, não precisam estar ali porque foram carregados por engano ou foram mantidos na memória por alguma referência pendente.

Seção principal – Visualização de objetos do Unity

A visualização Toda a Memória permite que você veja toda a memória, dividida por categoria: Nativa, Gerenciada, Gráfica ou Executáveis. Você pode ver os dados capturados pelo Memory Profiler e investigar aspectos mais específicos para ver o que está compondo a memória do seu projeto.

Seção principal – Visão de toda a memória
Detalhes da seleção

Detalhes da seleção oferece mais informações sobre itens selecionados na seção Principal, incluindo descrições de diferentes categorias de memória e possíveis referências ou detalhes de objetos selecionados.

Esta seção oferece mais informações para ajudar você a entender o que está vendo e torna mais fácil determinar por que aquilo está na memória. Além disso, se você tiver o projeto aberto no Editor, você terá a possibilidade de “pingar” objetos e inspecionar ativos diretamente na janela Cena ou Projeto.

 Visualização de detalhes da seleção
Comparando instantâneos

Cada uma das visualizações descritas acima está disponível para inspecionar instantâneos individuais ou para compará-los.

Se quiser comparar um instantâneo, você pode selecionar “Comparar” na lista de instantâneos e, em seguida, selecionar um segundo instantâneo da sua lista. Estar na aba de comparação da lista de instantâneos transformará automaticamente todas as visualizações no modo Comparar.

No modo Comparar, a visualização Resumo fornece o detalhamento da memória das duas capturas, lado a lado, para que você possa ver as principais diferenças no uso da memória entre os instantâneos (que serão chamados de “A” e “B”).

Modo de visualização de comparação

Nas visualizações Objetos do Unity e Toda a Memória, há uma nova interface de usuário dedicada que permite que você veja como diferentes categorias de memória mudaram em tamanho ou a quantidade de objetos contidos nelas.

Se você selecionar uma categoria na tabela superior, poderá inspecionar diferenças individuais para os instantâneos A e B nas tabelas abaixo.

Objetos Unity e visualizações de toda a memória usando o modo Comparar

Se você quiser voltar a inspecionar um único instantâneo, você pode selecionar “Único” novamente na lista de instantâneos. O segundo instantâneo permanecerá carregado latentemente para que você possa alternar rapidamente entre os dois, conforme necessário.

Compreendendo a memória no Unity e como otimizá-la

Nos próximos meses, esperamos fornecer mais recursos e informações sobre como você pode otimizar sua memória de forma eficaz. Fique ligado para mais postagens de blog abordando como identificar problemas comuns de memória, bem como uma análise aprofundada de como a memória funciona no Unity.

Para obter recursos mais gerais sobre como otimizar o desempenho do aplicativo, recomendamos o seguinte:

Próximos passos

Este redesenho do Memory Profiler integra contribuições de muitos dos primeiros usuários da versão experimental deste pacote. Embora esta versão traga grandes melhorias tanto na confiabilidade quanto na usabilidade desta ferramenta, nosso trabalho está longe de terminar.

Também estamos trabalhando para entender melhor os fluxos de trabalho relacionados à redução da fragmentação, para que possamos ajudar você com esse aspecto no futuro. Ao mesmo tempo, estamos coletando feedback sobre problemas de usabilidade e UX que ainda estão abertos e precisam de melhorias.

Se você tiver algum feedback ou sugestão, convidamos você a compartilhar suas ideias por meio da nossa página de roteiro, onde você pode votar em recursos existentes em andamento ou sugerir novos. Você também pode entrar em contato para fazer perguntas nos fóruns.

Estamos monitorando constantemente ambos os canais e estamos ansiosos para trabalhar juntos para melhorar ainda mais o desempenho e as ferramentas do Unity.

Instale ou saiba mais sobre o pacote Memory Profiler 1.0.0 .