C++ incluem diagnóstico no Visual Studio
A partir do Visual Studio 17.8, o Visual Studio ajuda você a analisar seus arquivos C++ #include
:
- Exibe com que frequência e onde algo de cada arquivo de cabeçalho é usado.
- Exibe o tempo de compilação para cada
#include
arquivo, o que ajuda a identificar oportunidades para otimizar seu tempo de compilação.
Habilitar C++ Include Diagnostics e 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 incluir diretivas 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 C++ # incluem referências e Mostrar tempos de compilação C++ são realçadas.
Ver #include
referências
Para testar o Include Diagnostics, crie um novo projeto de console C++. Substitua o conteúdo do arquivo principal .cpp
com o 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 C++ Include Diagnostics 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. Fica assim 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 C++ Include Diagnostics mostra que há cinco locais no código onde o código do arquivo de cabeçalho vetorial é 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. Ele é 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.
Ver #include
tempo de compilação
Para ver o tempo de compilação de cada arquivo que você #include
, primeiro compile usando o Build Insights.
Ative o Build Insights na barra de menus principal selecionando Build>Run Build Insights on Solution>Build. Depois que a compilação for concluída, uma janela aparecerá para listar os tempos de compilação para os vários arquivos que são compilados. Retorne à janela do código-fonte e o tempo de compilação para cada #include
arquivo é exibido no CodeLens. É semelhante a isto:
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 o tempo de compilação, essa ferramenta pode ajudá-lo a identificá-la.
Neste artigo, você viu como ativar o C++ Include Diagnostics e o CodeLens, e como usar o C++ Include Diagnostics para analisar com que frequência algo de um arquivo de inclusão é usado e como um #include
impacto no tempo de compilação.
Confira também
Visão geral do C/C++ Include Cleanup
Mensagens do Include Cleanup