Novidades no dotMemory

Esta página o orienta nas atualizações recentes dos lançamentos dotMemory e dotMemory Unit. Os destaques incluem uma ferramenta de criação de perfil de linha de comando, suporte para aplicativos .NET, e análise de despejos de memória.

Baixar o dotMemory

Avaliação gratuita por 30 dias disponível

Suporte a aplicativos MAUI

Suporte a aplicativos MAUI 2024.1

Agora você pode criar perfis de aplicativos baseados no framework MAUI.

No momento, o dotMemory tem suporte apenas a aplicativos de desktop do Windows, usando a WinUI e visando o .NET 7.0 ou mais recente.

Este suporte está disponível para o dotMemory tanto stand-alone quanto integrado ao ReSharper e ao Rider.

Melhor suporte ao macOS 2024.1

  • Agora a versão stand-alone do dotMemory permite que você especifique pacotes de aplicativos (.app) em vez de arquivos executáveis.
  • O dotMemory no Rider pode fazer profiling de configurações executadas no macOS. É oferecido suporte para os frameworks-alvo net7.0-macos e net8.0-macos.
Novas visualizações para Linux e macOS no dotMemory

Novas visualizações para Linux e macOS no dotMemory 2024.1

As versões stand-alone do dotMemory para Linux e macOS ficaram mais próximas da versão para Windows, oferecendo:

  • A visualização Similar Retention, para analisar conjuntos de objetos
  • O diagrama Sunburst, para analisar objetos dominadores

Suporte ao Frozen Object Heap 2024.1

As informações a respeito de objetos imutáveis no Frozen Object Heap são mostradas na timeline, no diagrama Heap Fragmentation e na visualização Generations.

dotMemory stand-alone no Linux e macOS 2023.3 Beta

Agora você pode executar a versão stand-alone do dotMemory nos sistemas operacionais Linux e macOS.

Análise de dumps de processos no Linux 2023.3

Agora o dotMemory permite importar e analisar dumps de processos como snapshots comuns no Linux. Observe que a versão do dotMemory para Linux só pode importar dumps coletados de processos executados no sistema operacional Linux.

Análise de snapshots no JetBrains Rider 2023.2

Antes da versão 2023.2, você só podia usar o dotMemory no Rider para fazer análises de alocação de memória. Na versão 2023.2, você pode coletar snapshots de memória e analisá-los no Rider da mesma forma que na versão autônoma do dotMemory.

  • A análise de snapshots está disponível no Windows, Linux e macOS.
  • No Windows, você também pode importar e analisar dumps de processos.
  • Não estão disponíveis alguns recursos e visualizações, como inspeções automáticas de snapshots e visualizações de rastreamentos de pilhas de criação de objetos.

Suporte para Windows ARM64 2022.3

Agora, você pode usar o dotMemory em CPUs ARM64 no Windows. Isso se aplica a todas as versões: dotMemory standalone, dotMemory no Rider, dotMemory no Visual Studio e a ferramenta de linha de comando do dotMemory.

Suporte para Linux ARM32 2022.3

Agora, você pode executar o profiler de linha de comando dotMemory em CPUs ARM32 no Linux. Os frameworks suportados são o .NET Core 3.1 e o .NET 5.0–7.0.

dotMemory no JetBrains Rider 2022.3

Além do Windows, agora o dotMemory também está disponível para o JetBrains Rider no Linux e no macOS. Dois novos modos de profiling estão disponíveis no widget Run e na opção Run | Switch profiler configuration do menu – Memory (sampled allocations) e Memory (full allocations). Você pode saber mais sobre as diferenças entre esses modos na Ajuda do dotMemory.

Você pode anexar o profiler a um processo em execução a partir do menu Run e ver o Timeline Graph se desenrolando em tempo real. Selecione um intervalo para abrir a visualização Memory Allocations, que é a mesma do dotMemory Standalone. Isso permite que você analise os objetos alocados e a árvore de chamadas de alocação para um intervalo de tempo específico.

Infelizmente, ainda não é possível obter snapshots de memória nesta versão.

Melhorias no profiler de linha de comando dotMemory 2022.3

Agora, o profiler de linha de comando tem o argumento --saving-mode, que permite definir condições para quando salvar um espaço de trabalho do dotMemory.

dotMemory no JetBrains Rider 2022.2

Agora o dotMemory está disponível diretamente no JetBrains Rider:

  • Dois novos modos de profiling estão disponíveis no widget Run e na opção Run | Switch profiler configurations do menu principal – Memory (sampled allocations) e Memory (full allocations). Você pode saber mais sobre a diferença entre esses modos na Ajuda do dotMemory.
  • Você pode anexar o profiler a um processo em execução a partir do menu Run.
  • Observe como se desdobra o Timeline Graph em tempo real selecionando um intervalo e abrindo a visualização Alocação de memória. Isto é equivalente à mesma visualização no dotMemory Standalone e permite que você vá mais fundo na análise de um período de tempo específico.

O plug-in do dotMemory não permite coletar snapshots e só funciona no Windows e na versão 2022.2.

Suporte a distribuições do Linux baseadas no musl 2022.1

Agora a ferramenta de linha de comando do dotMemory tem suporte às versões 3.13–3.15 do Alpine. As seguintes CPUs e frameworks são suportados:

  • x64: .NET Core 3.1, .NET 5.0–6.0.
  • arm64: .NET 5.0–6.0.

Melhorias na API de Profiling 2022.1

Ao tirar um snapshot com a ajuda da API de profiling, agora você pode especificar um nome para o snapshot, usando DotMemory.GetSnapshot("snapshot name");

Esse nome será mostrado na página Home | Snapshots do dotMemory.

Anexar a aplicativos usando arrastar e soltar 2022.1

Agora você pode anexar o profiler a um aplicativo já em execução simplesmente arrastando o ícone especial até a janela do aplicativo.

Melhorias na ferramenta de linha de comando 2022.1

Agora a ferramenta de linha de comando do dotMemory mostra o progresso ao salvar um snapshot.

Melhorias de desempenho na visualização Similar Retention 2022.1

Agora a visualização Similar Retention processa dados muito mais rapidamente.

Suporte a processadores Apple Silicon 2021.3

A ferramenta de linha de comando dotMemory agora funciona em computadores com processadores Apple Silicon. Agora você pode usar a ferramenta dotMemory para fazer profiling de aplicativos .NET 6 (modo nativo) e .NET 5 (modo Rosetta 2).

Melhorias de desempenho 2021.3

Reformulamos completamente o algoritmo por trás da árvore de dominadores (o gráfico de retenção de objetos). Mesmo se um conjunto de objetos contiver centenas de milhões de objetos, o dotMemory só demorará alguns minutos para abrir uma visualização específica.

Dados amostrados de alocação de memória 2021.3

O dotMemory agora pode obter dados amostrados de alocação de memória, baseados em eventos do ETW. A amostragem é menos precisa que a maneira tradicional (estatística) de coletar dados de alocação, mas oferece várias vantagens:

  • Os dados amostrados de alocação são coletados sem prejudicar o desempenho.
  • Você não precisa ativar explicitamente essa coleta de dados; ela está sempre ativa.
  • Os dados amostrados de alocação também podem ser coletados quando você anexa o profiler a um aplicativo que já está em execução.

Observe que este recurso só está disponível no Windows.

Visualização Subsystems 2021.3

Agora você pode usar a visualização Subsystems para analisar dados de alocação de memória. Um subsistema agrupa todos os métodos que pertencem a um mesmo tipo, namespace ou assembly. A visualização resultante lista os objetos criados pelos subsistemas e mostra uma árvore de chamadas mesclada para cada subsistema.

Atualizações na análise de alocação de memória 2021.2

Neste lançamento, continuamos a melhorar a maneira como você analisa a alocação da memória. Duas novas guias foram adicionadas à exibição Memory Allocation:

  • A guia Methods permite que você analise uma lista simples de métodos que têm memória alocada.
  • A guia Call Tree permite que você analise a árvore de chamadas de alocação. Cada nó na árvore mostra não só o método chamado, como também os objetos alocados pela chamada.

Filtros aprimorados 2021.2

A barra de pesquisa na parte superior das exibições do dotMemory está agora mais flexível e fácil de usar:

  • Os filtros têm opções adicionais para restringir o escopo da pesquisa: #struct (pesquisar apenas em tipos de valor), #c (apenas em tipos), #m (apenas em métodos), #ns (apenas em namespaces).
  • Você pode obter ajuda para todos os filtros possíveis em um determinado contexto.

Exportação de objetos aprimorada 2021.2

Agora, é possível:

  • Especificar a profundidade de travessia ao exportar dados de objetos.
  • Selecionar um ou mais tipos e exportar seus dados para um único arquivo.
  • Exportar dados de objetos das exibições Instances, Outgoing References, and Unreachable Objects.

Atualização do profiler do console 2021.2

Agora, é possível usar mensagens de serviço para habilitar e desabilitar a coleta de dados de alocação de memória.

Copiar rastreamento de pilha para a área de transferência 2021.2

Um rastreamento de pilha copiado para a área de transferência no dotMemory agora é aberto automaticamente no Rider/Visual Studio com ReSharper.

Nova tela inicial 2021.1

Reformulamos completamente a tela inicial do dotMemory: agora, é muito mais fácil configurar e iniciar novas sessões de definição de perfil, trabalhar com snapshots e realizar outras operações básicas.

Suporte para dumps do Linux

Suporte para dumps do Linux 2021.1

Agora, você pode analisar dumps de aplicações .NET Core coletados nos sistemas Linux usando gcore.

Análise aprimorada de alocação de memória

Análise aprimorada de alocação de memória 2021.1

Agora, o dotMemory permite que você analise a alocação de memória em um intervalo de tempo arbitrário. Basta selecionar o intervalo na linha do tempo e a exibição Memory Allocation mostrará os objetos alocados nesse intervalo, bem como o rastreamento de pilha que os alocou.

Baixar o dotMemory

Avaliação gratuita por 30 dias disponível