Diagnósticos de Inclusão de C++ no Visual Studio
A partir do Visual Studio 17.8, o Visual Studio ajuda você a analisar seus arquivos C++ #include
:
- Exibe com que freqüência e onde algo de cada arquivo de cabeçalho é usado.
- Exibe o tempo de compilação de cada
#include
arquivo, o que ajuda a identificar oportunidades para otimizar o tempo de compilação.
Habilitar o C++ Include Diagnostics e o CodeLens
O recurso C++ Include Diagnostics está desativado por padrão. Para ativá-lo, clique com o botão direito do mouse no editor de código para abrir o menu de contexto e escolha Incluir diretivas>Ativar #include diagnóstico.
O menu de contexto mostra a opção de diretivas de inclusão realçada, que revela duas opções: Classificar # incluir diretivas e ativar # incluir diagnósticos.
As informações sobre seus #include
arquivos são exibidas por meio do CodeLens, que está desativado por padrão. Para ativar as configurações relevantes do CodeLens, navegue até Ferramentas>, Opções>, Editor>de Texto, Todos os Idiomas>, CodeLens e confirme se Mostrar referências de #include C++ e Mostrar tempos de compilação C++ estão habilitados.
A janela de opções é definida como Editor de Texto > Todos os Idiomas > CodeLens. As opções Mostrar referências de inclusão # do C++ e Mostrar tempos de compilação do C++ são realçadas.
Ver #include
referências
Para experimentar o Diagnóstico de Inclusão, crie um novo projeto de console C++. Substitua o conteúdo do arquivo principal .cpp
pelo seguinte código:
#include <iostream>
#include <vector>
// a function that takes a vector of integers and prints them out
void print(std::vector<int> &vec)
{
for (int i : vec)
{
std::cout << i << std::endl;
}
std::cout << std::endl;
}
// a function that takes a vector of integers and adds 10 to each element of the vector and store the result in a new vector
std::vector<int> add10(std::vector<int>& vec)
{
std::vector<int> newVec;
for (int i : vec)
{
newVec.push_back(i + 10);
}
return newVec;
}
int main()
{
std::vector<int> vec = { 7, 5, 16, 8 };
print(vec);
auto newVec = add10(vec);
print(newVec);
}
Quando o Diagnóstico de Inclusão do C++ está ativado, o número de vezes que o código de um arquivo de cabeçalho é referenciado no arquivo de código atual é exibido acima do arquivo de cabeçalho. Ele se parece com isso para o exemplo de código anterior:
6 references
#include <iostream>
5 references
#include <vector>
No editor de código, selecione 5 referências acima #include <vector>
e um resumo dos locais onde o código de <vector>
é usado neste arquivo é exibido:
A janela de contexto Diagnóstico de Inclusão do C++ mostra que há cinco locais no código em que o código do arquivo de cabeçalho de vetor é usado no arquivo de código atual. Por exemplo, ele é usado duas vezes na definição da função add10, como um valor de retorno e parâmetro. É usado na linha 17 na declaração de newVec e assim por diante.
Selecione um item para ir para seu local em seu código.
Exibir #include
tempo de compilação
Para ver o tempo de compilação de cada arquivo que você faz #include
, primeiro crie usando o Build Insights.
Ative o Build Insights na barra de menus principal selecionando Build>Run Build Insights no Build da Solução.> Após a conclusão da compilação, uma janela é exibida para listar os tempos de compilação para os vários arquivos compilados. Retorne à janela de código-fonte e o tempo de compilação de cada #include
arquivo será exibido no CodeLens. É semelhante a isso:
6 references | Build: 0.3560s
#include <iostream>
5 references | Build 0.0360s
#include <vector>
Se você tiver uma #include
diretiva que é usada com pouca frequência, mas afeta significativamente seu tempo de compilação, essa ferramenta pode ajudá-lo a identificá-la.
Neste artigo, você viu como ativar o Diagnóstico de Inclusão do C++ e o CodeLens e como usar o Diagnóstico de Inclusão do C++ para analisar a frequência com que algo de um arquivo de inclusão é usado e como isso #include
afeta o tempo de build.
Confira também
Visão geral do C/C++ Include Cleanup
Mensagens do Include Cleanup