Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece soluções para alguns dos erros mais comuns que podem impedir o uso ou obtenção de dados suficientes do Criador de Perfil de Desempenho no Visual Studio.
Nenhum resultado
Erro: "Não há dados no conjunto atual de filtros"
Ao abrir um arquivo de diagsession , determinados filtros são aplicados, como ocultar código nativo ou ocultar código não usuário para facilitar a compreensão do rastreamento. Além disso, há outros filtros que podem ser aplicados, como seleção de tempo e thread, que restringem ainda mais os dados mostrados. Se esses filtros forem aplicados de uma maneira que não haja mais dados a serem mostrados, você verá esse aviso.
Como corrigir
- Verifique se sua seleção de tempo tem dados nele. Se você alterou sua seleção de tempo no grafo acima dos dados, selecione Limpar Seleção para redefini-lo.
- Em seguida, se ainda não houver dados, verifique se todas as categorias e threads estão habilitados em suas respectivas listas suspensas.
- Se o aplicativo que você está criando a criação de perfil for um código nativo, habilite a opção Mostrar Código Nativo na lista suspensa Configurações .
- Se você ainda não tiver dados, o rastreamento que você coletou provavelmente será muito curto para que os dados estejam presentes. Verifique se o programa para o qual você está coletando dados não é concluído muito rapidamente (menos de um segundo).
Veja também: Mostrar código externo
Demorando muito tempo para que os resultados sejam concluídos
Se a análise do heap após a coleção parecer lenta para carregar, confira as soluções possíveis a seguir que podem ajudar a resolver problemas de tempo de espera.
Como corrigir Às vezes, pode levar mais tempo ao tentar analisar instantâneos de aplicativos com uso intensivo de memória, mas a atualização para uma versão mais recente do Visual Studio deve reduzir o tempo de espera da análise. Se esse problema for persistente após a atualização, pode haver um bug de desempenho na ferramenta. Crie um tíquete de comentários e compartilhe o arquivo de diagsession que foi criado. Com o arquivo, podemos determinar por que os dados são lentos para analisar e localizar onde podemos fazer melhorias de desempenho.
Certifique-se de fornecer um rastreamento e arquivos de despejo de heap no tíquete comentários.
Veja também:
Erro "Não foi possível criar um arquivo de manifesto para essa diagsession" ou "não foi possível criar um arquivo de manifesto para diagsession, o Visual Studio não poderá reabrir esta sessão".
Esse problema significa que houve um problema ao preparar os dados de instantâneo de memória a serem analisados e exibidos após parar para coletar dados. Há várias possíveis causas para que o problema apareça, desde uma falha ao obter as informações corretas dos agentes de coleta até o processamento de dados real. Portanto, não será possível diagnosticar qual é o problema sem registro em log adicional.
Como corrigir Responda ao seu tíquete de Comentários com informações adicionais de log para que possamos diagnosticar o problema. Você pode obter as informações de log executando os seguintes comandos em um prompt de comando com privilégios elevados:
reg add HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\DiagnosticsHub /v LogLevel /t REG_SZ /d All /reg:32
reg add HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\DiagnosticsHub /v LogDirectory /t REG_SZ /d [directory of your choice] /reg:32
Depois de executar esses comandos, inicie o Visual Studio, reproduza seu cenário, feche o Visual Studio e feche o diretório de log do DiagnosticsHub escolhido e anexe-o a esse tíquete. A partir desse ponto, devemos ser capazes de diagnosticar melhor o que está acontecendo.
Depois de adicionar o log ao seu tíquete, execute estes comandos para desabilitar o registro em log:
reg delete HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\DiagnosticsHub /f /v LogLevel /reg:32
reg delete HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\DiagnosticsHub /f /v LogDirectory /reg:32
Erro: "Informações de origem não disponíveis".
Para exibir informações de origem, você precisa ter PDBs disponíveis no momento da coleta. Portanto, por exemplo, se você coletar um arquivo de diagsessão de uso da CPU, fazer algumas alterações no código, recompilar (que substitui o PBD antigo) e abrir a .diagsession novamente, provavelmente não será possível ver informações de origem para os módulos do código que você atualizou.
Como corrigir A solução alternativa mais fácil para esse problema é coletar uma nova diagsessão depois de fazer alterações. Dessa forma, você pode ter certeza de que seus PDBs estão atualizados.
Erro: "Falha na análise de memória devido a um erro interno".
Após uma longa sessão de criação de perfil de memória, qualquer tentativa de analisar o resultado é atendida com o erro.
Houve uma incompatibilidade entre as informações de instantâneo capturadas pela ferramenta de memória e a do agente de coleção. Esse resultado significa que a ferramenta de memória não foi capaz de localizar o arquivo de estado de heap para um instantâneo nativo. Ou, desse resultado, a ferramenta de memória não pôde corresponder à hora de início do GC do instantâneo com a registrada no arquivo de diagsession para recuperar o GCStats.
Como corrigir Esse problema ocorreu devido a um bug na ferramenta que foi corrigida no Visual Studio 2022 versão 17.3. A atualização para uma versão posterior deve resolver o problema. Se o problema ainda for persistente após a atualização, crie um tíquete de comentários e anexe ao tíquete:
- O arquivo de diagsession
- Um minidump do Visual Studio
- Uma captura de tela dos instantâneos de memória que foram tirados.
Não há uma solução alternativa para esse problema e a sessão de criação de perfil precisará ser reiniciada.
Erro: "Eventos de diagnóstico X descartados, algumas informações no relatório podem estar ausentes ou imprecisas"
Às vezes, durante a captura de dados, podem ser descartados eventos que podem fazer com que o relatório de criação de perfil resultante seja impreciso ou inutilizável. Eventos descartados podem ocorrer por vários motivos diferentes, mas ocorrem principalmente quando o sistema não consegue liberar eventos para o disco mais rápido do que a taxa de entrada.
Como corrigir Para ajudar a reduzir os eventos descartados, você pode fechar outras operações com uso intensivo de disco e CPU durante a criação de perfil. Ao fechar essas operações, o sistema pode dedicar mais recursos para liberar os eventos de entrada. Você também pode tentar reduzir as frequências de amostragem nas ferramentas que dão suporte a essas configurações, como a ferramenta uso da CPU e a ferramenta de alocação do .NET e, assim, reduzir a sobrecarga.
Erro: os recursos do ETW foram esgotados
O criador de perfil do Visual Studio usa o ETW (Rastreamento de Eventos para Windows) para coletar suas informações de desempenho. Há um número finito de sessões ETW disponíveis para uso em um sistema e, se todas as sessões já estiverem em uso, você receberá o seguinte erro: ETW resources have been exhausted. Essas sessões são usadas por outros programas, como o conjunto de ferramentas SysInternals, outros criadores de perfil e outras ferramentas de diagnóstico. Você pode resolver esse problema:
Fechando os programas que estão usando as sessões para liberar recursos ou
Deixando de lado mais recursos executando o seguinte em um prompt de comando com privilégios elevados e reinicializando:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI" /v EtwMaxLoggers /t REG_DWORD /d 128Executar esse comando aumenta o número padrão de sessões de 64 para 128 (256 é o número máximo de sessões permitidas em um sistema).
Erro: A ferramenta uso da CPU não funciona na VM ARM64
O criador de perfil do Visual Studio usa o ETW (Rastreamento de Eventos para Windows) para coletar suas informações de desempenho. Atualmente, a coleta de exemplos de perfil usando ETW não tem suporte no Windows para ARM64 durante a execução em uma VM (Máquina Virtual). Para contornar essa limitação, você pode usar a ferramenta uso da CPU em um dispositivo ARM64 real ou usar a ferramenta instrumentação para capturar informações de tempo.
Erro: a ferramenta Uso de Memória não funciona no .NET 7 e no Runtime do .NET 8.0.0-8.0.1 com o GC do Servidor habilitado
Devido a um problema introduzido com o runtime do .NET 7 e propagado para as versões de runtime do .NET 8 8.0.0 e 8.0.1, não é possível enumerar objetos ao usar a coleta de lixo do servidor. A coleta de lixo do servidor é habilitada por padrão para aplicativos do ASP.NET Core.
Como corrigir
Para contornar este problema:
- Desabilite a coleta de lixo do servidor ao tirar um instantâneo ou coletar um despejo do aplicativo.
- Use uma versão não afetada do Runtime do .NET.
Veja também:
- Coleta de lixo de servidor e estação de trabalho
- Opções de configuração de runtime para coleta de lixo
- O DAC falha ao enumerar objetos heap no .NET 7+ devido a regiões do GC