Partilhar via


SDK do Visualizador de Concorrência

Você pode instrumentar seu código-fonte usando o SDK do Visualizador de Simultaneidade para exibir informações adicionais no Visualizador de Simultaneidade. Você pode associar os dados adicionais a fases e eventos em seu código. Essas visualizações adicionais são conhecidas como marcadores. Para obter um passo a passo introdutório, consulte Apresentando o SDK do Visualizador de Simultaneidade.

Propriedades

Sinalizadores, intervalos e mensagens têm duas propriedades: categoria e importância. Na caixa de diálogo Configurações avançadas , você pode usar essas propriedades para filtrar o conjunto de marcadores exibidos. Além disso, essas propriedades afetam a representação visual dos marcadores. Por exemplo, o tamanho das bandeiras é usado para representar a importância. Além disso, a cor é usada para indicar a categoria.

Utilização básica

O Visualizador de Simultaneidade expõe um provedor padrão que você pode usar para gerar marcadores. O provedor já está registrado junto com o Visualizador de Simultaneidade e você não precisa fazer mais nada para que os marcadores apareçam na interface do usuário.

C# e Visual Basic

Em C#, Visual Basic e outro código gerenciado, use o provedor padrão chamando métodos na classe Markers . Ele expõe quatro métodos para gerar marcadores: WriteFlag, EnterSpan, WriteMessage e WriteAlert. Há várias sobrecargas para essas funções, dependendo se você deseja usar padrões para as propriedades. A sobrecarga mais simples usa apenas um parâmetro de cadeia de caracteres que especifica a descrição do evento. A descrição é exibida nos relatórios do Visualizador de Simultaneidade.

Para adicionar suporte a SDK a um projeto C# ou Visual Basic
  1. Na barra de menus, escolha Analisar, Visualizador de simultaneidade, Adicionar SDK ao projeto.

  2. Selecione o projeto no qual você deseja acessar o SDK e, em seguida, escolha o botão Adicionar SDK ao projeto selecionado .

  3. Adicione uma instrução imports ou using ao seu código.

    using Microsoft.ConcurrencyVisualizer.Instrumentation;
    

C++

Em C++, crie um objeto marker_series Class e use-o para chamar funções. A marker_series classe expõe três funções para gerar marcadores, o Método marker_series::write_flag, o Método marker_series::write_message e o Método marker_series::write_alert.

Para adicionar suporte a SDK a um projeto C++ ou C
  1. Na barra de menus, escolha Analisar, Visualizador de simultaneidade, Adicionar SDK ao projeto.

  2. Selecione o projeto no qual você deseja acessar o SDK e, em seguida, escolha o botão Adicionar SDK ao projeto selecionado .

  3. Para C++, inclua cvmarkersobj.h. Para C, inclua cvmarkers.h.

  4. Adicione uma declaração 'using' ao seu código.

    using namespace Concurrency::diagnostic;
    
  5. Crie um marker_series objeto e passe-o para o span construtor.

    
    marker_series mySeries;
    span s(mySeries, _T("Span description"));
    
    

Utilização personalizada

Para cenários avançados, o SDK do Visualizador de Concorrência oferece mais controlo. Dois conceitos principais estão associados a cenários mais avançados: provedores de marcadores e séries de marcadores. Os provedores de marcadores são provedores ETW diferentes (cada um tem um GUID diferente). As séries de marcadores são canais seriais de eventos gerados por um provedor. Você pode usá-los para organizar os eventos gerados por um provedor de marcadores.

Para usar um novo provedor de marcador em um projeto C# ou Visual Basic

  1. Crie um objeto MarkerWriter . O construtor usa um GUID.

  2. Para registar o provedor, abra a caixa de diálogo 'Definições avançadas' do Visualizador de Simultaneidade. Selecione a guia Marcadores e, em seguida, escolha o botão Adicionar novo provedor . Na caixa de diálogo Configurações avançadas , insira o GUID que foi usado para criar o provedor e uma descrição do provedor.

Para usar um novo provedor de marcadores em um projeto C++ ou C

  1. Utilize a função CvInitProvider para inicializar um PCV_PROVIDER. O construtor recebe um GUID* e um PCV_PROVIDER*.

  2. Para registrar o provedor, abra a caixa de diálogo Configurações avançadas . Selecione a guia Marcadores e, em seguida, escolha o botão Adicionar novo provedor . Nesta caixa de diálogo, insira o GUID que foi usado para criar o provedor e uma descrição do provedor.

Para usar uma série de marcadores em um projeto C# ou Visual Basic

  1. Para usar um novo MarkerSeries, primeiro crie-o usando um objeto MarkerWriter e, em seguida, gere eventos de marcador diretamente da nova série.

    MarkerSeries series1 = myMarkerWriter.CreateMarkerSeries("Series 1");
    series1.WriteFlag("My flag");
    

Para usar uma série de marcadores em um projeto C++

  1. Crie um marker_series objeto. Você pode gerar eventos a partir desta nova série.

    marker_series series;
    series.write_flag(_T("Hello world!"));
    

Para usar uma série de marcadores em um projeto C

  1. Utilize a CvCreateMarkerSeries função para criar uma PCV_MARKERSERIES.

    PCV_MARKERSERIES series;
    CvCreatemarkerSeries(myProvider, _T("My Series"), &series);
    CvWriteFlag(series, _T("Writing a flag"));
    

Consulte também

Title Description
Referência da biblioteca C++ Descreve a API do Visualizador de Simultaneidade para C++.
Referência da biblioteca C Descreve a API do Visualizador de Simultaneidade para C.
Instrumentação Descreve a API do Visualizador de Simultaneidade para código gerenciado.
Visualizador de concorrência Informações de referência para as visualizações e relatórios dos ficheiros de dados de perfilagem que são gerados usando o método de simultaneidade e que incluem dados de execução de threads.