Novidades no dotMemory

Esta página dá detalhes sobre as últimas atualizações e alterações no dotMemory.

Baixar o dotMemory

Avaliação gratuita por 30 dias disponível

Interface de usuário 2024.3

A versão 2024.3 introduz algumas pequenas melhorias na experiência e na interface de usuário, além de alguns toques de acabamento que dão uma aparência unificada a todas as versões do dotMemory, em todos os sistemas operacionais.

Visualização Creation Stack Trace para instâncias de objetos 2024.3

Reintroduzimos a visualização Creation Stack Trace, que tinha sido removida anteriormente, durante a reformulação da interface de usuário. Essa visualização mostra a pilha das chamadas a funções usadas na criação de um objeto, facilitando a identificação da causa inicial de problemas de memória.

Visualização Back Traces para conjuntos de objetos 2024.3

Também reimplementamos a visualização Back Traces para conjuntos de objetos. A árvore invertida de chamadas nessa visualização mostra de baixo para cima a sequência de chamadas desde a função que criou um determinado conjunto de objetos.

Possibilidade de visualizar dominadores através de um gráfico de barras 2024.3

Agora a árvore de dominadores pode ser mostrada na forma de um gráfico de barras, mostrando o consumo de memória do dominador e dos objetos retidos. Este recurso está disponível para o dotMemory no Windows, Linux e macOS, tanto na versão stand-alone quanto no JetBrains Rider.

Aba Call Tree com gráfico de sunburst para árvores de chamadas agora disponível em todos os sistemas operacionais 2024.3

A possibilidade de visualizar árvores de chamadas na forma de gráficos de sunburst, introduzida na versão 2024.2, agora está disponível no dotMemory no Windows, Linux e macOS, tanto na versão stand-alone quanto no JetBrains Rider.

Melhor pesquisa de instâncias 2024.2

Adicionamos novas opções de filtragem à visualização Instances:

  • Pesquisa pelo valor de uma string: Digite qualquer valor de string no campo de filtro e o dotMemory realçará as strings correspondentes. Isso facilita encontrar ocorrências específicas de uma string, com base no seu conteúdo.
  • Suporte a expressões regulares em valores de strings: Use expressões regulares para fazer pesquisas mais avançadas. Por exemplo, ^nAsso.{5,}ID$ encontra nAssociatedObjectID.nAssociatedObjectID.
  • Pesquisa pelo endereço de um objeto: Você também pode pesquisar instâncias de objetos pelo endereço delas na memória. Isso é útil para rastrear diretamente objetos específicos.

Esses recursos estão disponíveis tanto na versão stand-alone do dotMemory quanto na versão incluída no JetBrains Rider.

Novos recursos no dotMemory para Linux e macOS 2024.2

As versões do dotMemory para Linux e macOS ganharam recursos antes disponíveis somente no Windows:

  • Inspeções automáticas de memória: o dotMemory para Linux e macOS ganhou a visualização Inspections, que mostra vários problemas de memória detectados automaticamente.
  • Comparação de snapshots em diferentes espaços de trabalho: agora você pode comparar snapshots de diferentes sessões de profiling, possibilitando uma análise mais abrangente da memória.

Esses recursos estão disponíveis tanto na versão stand-alone do dotMemory quanto na versão incluída no JetBrains Rider.

Visualização da Call Tree em um gráfico de Sunburst 2024.2

Agora a Call Tree pode ser mostrada na forma de um gráfico de Sunburst, realçando as funções que alocarem mais memória. Este recurso está disponível na versão stand-alone do dotMemory (Linux e macOS) e no dotMemory no JetBrains Rider (Windows, Linux e macOS).

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 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.
  • Observe como se desdobra o Timeline Graph em tempo real selecionando um intervalo e abrindo a visualização Alocação de memória. Isso é equivalente à mesma visualização no dotMemory Standalone e permite que você analise mais profundamente 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