Partilhar via


Caixa de diálogo Definições Avançadas (Visualizador de Concorrência)

Usando a caixa de diálogo Definições Avançadas no Visualizador de Concorrência, pode controlar como os rastreamentos são coletados. A caixa de diálogo tem guias para símbolos, Just My Code, bufferização, filtragem, eventos CLR, marcadores, provedores e arquivos.

Symbols

O Visualizador de Simultaneidade usa as mesmas configurações de símbolo que o Depurador do Visual Studio. O Visualizador de Simultaneidade usa as configurações para resolver pilhas de chamadas associadas a dados de desempenho. Quando processa rastreamentos, o Visualizador de Simultaneidade acede aos servidores de símbolos especificados na página de definições. Quando esses dados são acessados por uma rede, o processamento de rastreamento fica mais lento. Para reduzir o tempo necessário para resolver símbolos, você pode armazenar símbolos em cache localmente. Se os símbolos tiverem sido baixados, o Visual Studio os carregará do cache local.

Just My Code

Por padrão, Just My Code é o conjunto de . exe e . dll que estão associados com a solução atual no Visual Studio. O Visualizador de Simultaneidade avalia esse conjunto de arquivos quando você usa o recurso Apenas Meu Código para filtrar pilhas de chamadas. Na guia Apenas Meu Código, você pode adicionar diretórios que contenham . exe e . dll para os locais que o Visualizador de Simultaneidade usa para Apenas Meu Código.

Os caminhos dos ficheiros .exe e .dll são armazenados no ficheiro de rastreio quando o rastreio é armazenado. A alteração desta configuração não afetará quaisquer rastreamentos já coletados.

Colocação em buffer

O Visualizador de Simultaneidade usa o Rastreio de Eventos para Windows (ETW) quando realiza um rastreio. O ETW usa vários buffers à medida que armazena eventos. As configurações padrão do buffer ETW podem não ser ideais em todos os casos e, em alguns casos, podem causar problemas, como eventos perdidos. Você pode usar a guia Buffering para definir as configurações de buffer ETW. Para obter mais informações, consulte Rastreamento de eventos e estrutura EVENT_TRACE_PROPERTIES.

Filter

Na guia Filtro, você pode selecionar o conjunto de eventos que o Visualizador de Simultaneidade coleta. A seleção de um subconjunto de eventos limita os tipos de dados exibidos nos relatórios, reduz o tamanho de cada rastreamento e reduz o tempo necessário para processar rastreamentos.

Eventos CLR

Os eventos gerados pelo Common Language Runtime (CLR) permitem que o Visualizador de Simultaneidade resolva pilhas de chamadas gerenciadas. Se você desabilitar a coleta de eventos CLR, o tamanho do rastreamento será reduzido, mas algumas pilhas de chamadas não serão resolvidas. Como resultado, algumas atividades de thread da CPU podem ser categorizadas incorretamente.

Coletar para processos nativos

Por padrão, os eventos CLR são coletados somente quando um processo gerenciado é perfilado porque normalmente são desnecessários para processos nativos. Em alguns casos (por exemplo, quando um processo nativo está hospedando o CLR), talvez seja necessário coletar eventos CLR para um processo nativo. Se for esse o caso, marque a caixa de seleção Recolher para Processos Nativos.

Desativar eventos de rundown

O CLR gera eventos de dois provedores: runtime e rundown. Se quiser recolher eventos de tempo de execução CLR, mas evitar recolher eventos de encerramento, marque a caixa de seleção Desabilitar eventos de encerramento. Isso reduz o tamanho do ficheiro de rastreio gerado pela recolha, mas algumas stacks podem não ser resolvidas. Para obter mais informações, consulte Provedores ETW CLR.

Exemplos de eventos

Você pode usar eventos amostra para coletar pilhas de chamadas associadas à execução de threads. Esses eventos são coletados aproximadamente uma vez por milissegundo para threads que estão sendo executados no processo atual. Se desativar a coleta de eventos de amostra, o tamanho do rastreamento coletado será reduzido, mas não será possível visualizar as pilhas de chamadas associadas à execução de threads.

Eventos da GPU

Os eventos GPU são eventos gerados pelo DirectX. Se você desabilitar a coleção de eventos da GPU, o tamanho do rastreamento coletado será reduzido, mas não será possível exibir nenhuma atividade da GPU na visualização Utilização ou a atividade do mecanismo DirectX na visualização Threads.

Eventos de E/S de arquivo

Os eventos de E/S de arquivo representam acessos ao disco em nome do processo atual. Se desativar eventos de E/S de arquivo, o tamanho do rastreamento será reduzido, mas a Vista de Threads não apresentará nenhuma informação sobre canais ou operações de disco.

Marcadores

Na guia Marcadores , você pode configurar o conjunto de provedores ETW que são mostrados como Marcadores no Visualizador de Simultaneidade. Você também pode filtrar a coleção Marker com base no nível de importância e na categoria ETW. Se estiver a utilizar o SDK do Visualizador de Simultaneidade e a utilizar o seu próprio provedor de marcador, pode registá-lo aqui para que apareça na Vista de Threads.

Adicionar um novo fornecedor

Se o seu código usa o SDK do Visualizador de Simultaneidade ou gera eventos ETW que seguem a EventSource convenção, você pode exibir esses eventos no Visualizador de Simultaneidade registrando-os nesta caixa de diálogo.

No campo Nome , insira um nome que descreva os tipos de eventos gerados pelo provedor. No campo GUID , insira o GUID associado a esse provedor. (Um GUID está associado a cada provedor ETW.)

Opcionalmente, você pode especificar se deseja filtrar eventos desse provedor, com base na categoria ou no nível de importância. Você pode usar o campo de categoria para filtrar com base nas categorias do SDK do Concurrency Visualizer. Para fazer isso, insira uma cadeia de caracteres delimitada por vírgulas de categorias ou intervalos de categorias. Isso especifica as categorias de eventos no provedor atual a serem exibidos. Se você estiver adicionando um EventSource provedor, poderá usar o campo de categoria para filtrar por palavra-chave ETW. Como a palavra-chave é uma máscara de bits, você pode usar uma cadeia de inteiros delimitada por vírgulas para especificar quais bits na máscara estão definidos. Por exemplo, "1,2" define o primeiro e o segundo bits, e isso se traduz em 6 em decimal.

Você pode usar a lista de nível de importância para filtrar eventos que tenham uma importância ou nível ETW menor que o valor especificado.

Configurar um provedor existente

Para editar as configurações associadas a um provedor existente, selecione-o na lista e escolha o botão Editar provedor . Você pode alterar as configurações de nome, GUID e filtragem.

Filtrar dados de marcadores de relatórios do Visualizador de Simultaneidade

Se você não quiser que os dados de um provedor específico apareçam em rastreamentos futuros, desmarque a caixa de seleção ao lado do provedor que você deseja remover.

Ficheiros

Na guia Arquivos , você pode especificar o diretório no qual os arquivos de rastreamento são armazenados cada vez que um rastreamento é coletado. O Visualizador de Simultaneidade gera quatro ficheiros para cada traço coletado:

  • Um arquivo de log de rastreamento de eventos (ETL) do modo kernel (.kernel.etl*)

  • Um arquivo de log de rastreamento de eventos no modo de usuário (.usuário.etl*)

  • Um ficheiro de dados do visualizador de concorrência (.CVData*)

  • Um arquivo de rastreamento do visualizador de simultaneidade (.CVTrace*)

    Os dois arquivos ETL armazenam os dados de rastreamento brutos e os dois arquivos do Visualizador de Simultaneidade armazenam os dados processados. Os arquivos ETL brutos normalmente não são usados após um rastreio ser processado. Marcar a caixa de seleção Excluir arquivos ETL (Log de Rastreamento de Eventos) após a análise reduz a quantidade de dados de rastreamento armazenados no disco.