O dotMemory é um profiler de memória .NET que pode ser inicializado diretamente do Visual Studio, usado como plug-in no JetBrains Rider ou usado como uma ferramenta independente.
O dotMemory permite fazer profiling de aplicativos que rodam em qualquer versão compatível do .NET Framework, .NET Core, .NET, aplicativos Web ASP.NET, IIS, IIS Express, serviços do Windows, aplicativos da Plataforma Universal do Windows e muito mais. No macOS e no Linux, o dotMemory pode ser usado somente como parte do JetBrains Rider ou como um profiler de linha de comando.
O dotMemory permite importar despejos brutos de memória do Windows obtidos usando o Gerenciador de tarefas ou o Process Explorer e analisá-los como snapshots regulares da memória. Ao fazer isso, você pode tirar proveito das inspeções automáticas, diagramas de retenção e outros recursos sofisticados do dotMemory.
A compreensão de como a memória é retida no seu aplicativo é essencial para otimizá-la com sucesso. Nesta visualização, a hierarquia de dominadores (objetos que retêm outros objetos exclusivamente na memória) é mostrada em um gráfico de brechas.
Uma rápida olhada no gráfico permite descobrir quais objetos são cruciais para o seu aplicativo e avaliar as maiores estruturas: quanto mais memória um dominador retém, maior o ângulo central.
Para obter o caminho de retenção do dominador específico, clique no arco correspondente. Clique duas vezes em um dominador para ampliar o gráfico, permitindo ver os objetos retidos por esse dominador com mais detalhes.
O dotMemory é integrado ao JetBrains Rider, permitindo que você faça rastreamentos de alocação de memória em tempo real, análises de alocação para intervalos de tempo específicos e muito mais. Você também pode iniciar uma sessão de profiling de memória a partir do Visual Studio sempre que necessário.
Mais tarde, você poderá navegar de um tipo em um objeto do dotMemory definido até a declaração do tipo no Visual Studio.
Às vezes, você pode estar interessado em tirar snapshots apenas quando uma determinada condição é verdadeira. É por isso que o dotMemory permite automatizar o processo de obtenção de snapshots. Isso é especialmente útil quando o consumo de memória do seu aplicativo aumenta drasticamente ou quando a captura manual de um snapshot é um processo complicado. Basta definir uma condição específica e coletar snapshots automaticamente depois que essa condição for atendida.
Monitore a memória consumida pelo seu aplicativo, obtenha snapshots e solte-os para comparar com um único clique.
Examine objetos na pilha de várias visualizações. Quer saber como os objetos se relacionam? Quais objetos eles referenciam e através de quais campos? Deseja saber quais chamadas criaram esses objetos? Sem problemas! O dotMemory tem uma visualização para tudo.
Comparar dois snapshots é a principal maneira de encontrar objetos que estão causando um vazamento de memória. Use a visualização de comparação para descobrir quantos objetos foram criados entre os snapshots e quantos objetos foram coletados.
Embora a criação de perfil de memória tenha a reputação de ser apenas para profissionais, a interface de usuário exclusiva do dotMemory reduz drasticamente essa barreira de entrada e torna o processo bastante simples. Você simplesmente passa de cima para baixo, de um conjunto de objetos para instâncias específicas, até identificar a causa real dos problemas de memória.
Alocações e coletas de lixo excessivas podem implicar uma sobrecarga significativa no gerenciamento da memória. Use a visualização de tráfego para entender quais objetos são criados/coletados mais intensamente no seu aplicativo e quais funções estão causando esse tráfego de memória.
O dotMemory verifica automaticamente seu snapshot em busca de tipos comuns de problemas de memória, como duplicatas de strings, matrizes esparsas, manipuladores de eventos com vazamentos ou associações WPF. Essas inspeções podem ser um excelente ponto de partida para analisar um snapshot, caso você não saiba por onde começar.
O dotMemory acompanha o peofiler da linha de comando dotMemory.exe. Use essa ferramenta para automatizar a criação de perfis: faça parte da criação contínua de perfis ou simplesmente acelere suas rotinas de criação de perfis (por exemplo, se você precisa criar um perfil regular do mesmo aplicativo e não deseja iniciar a interface do usuário do dotMemory todas as vezes).
Avaliação gratuita por 30 dias disponível