Zahrnutí diagnostiky C++ v sadě Visual Studio
Počínaje sadou Visual Studio 17.8 vám Visual Studio pomůže analyzovat soubory C++ #include
:
- Zobrazuje, jak často a kde se používá něco z každého souboru záhlaví.
- Zobrazí čas sestavení pro každý
#include
soubor– což vám pomůže identifikovat příležitosti k optimalizaci času sestavení.
Povolení diagnostiky zahrnutí C++ a CodeLens
Funkce C++ Include Diagnostics je ve výchozím nastavení vypnutá. Pokud ho chcete zapnout, kliknutím pravým tlačítkem myši v editoru kódu otevřete místní nabídku a zvolte Zapnout #include Diagnostika direktiv>Zahrnout.
V místní nabídce je zvýrazněná možnost zahrnout direktivy, která odhalí dvě možnosti: Direktivy Sort # include a turn # include diagnostics on.
Informace o souborech #include
se zobrazí prostřednictvím CodeLensu, což je ve výchozím nastavení vypnuté. Pokud chcete zapnout příslušná nastavení CodeLens, přejděte do Textového editoru>Možností>nástroje>Všechny jazyky>CodeLens a potvrďte, že jsou povoleny odkazy na jazyk C++ #include a zobrazit časy kompilace jazyka C++.
Okno možností je nastaveno na Text Editor > Všechny jazyky > CodeLens. Možnost Zobrazit jazyk C++ # obsahuje odkazy a možnosti Zobrazit časy kompilace jazyka C++.
Zobrazení #include
odkazů
Pokud chcete vyzkoušet zahrnutí diagnostiky, vytvořte nový projekt konzoly C++. Obsah hlavního .cpp
souboru nahraďte následujícím kódem:
#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);
}
Pokud je zapnutá diagnostika zahrnutí jazyka C++, zobrazí se nad souborem hlavičky počet odkazů kódu ze souboru hlavičky. Vypadá to jako u předchozí ukázky kódu:
6 references
#include <iostream>
5 references
#include <vector>
V editoru kódu vyberte výše 5 odkazů #include <vector>
a souhrn umístění, ze <vector>
kterých se kód používá v tomto souboru:
Kontextové okno kontextové diagnostiky zahrnutí jazyka C++ ukazuje, že kód ze souboru hlavičky vektoru se v aktuálním souboru kódu používá na pěti místech. Například se používá dvakrát u definice funkce add10 jako návratová hodnota a parametr. Používá se na řádku 17 v deklaraci newVec atd.
Vyberte položku, do které chcete přejít do jejího umístění v kódu.
Zobrazení #include
času sestavení
Pokud chcete zobrazit čas sestavení pro každý soubor #include
, nejprve sestavte pomocí Build Insights.
V hlavním řádku nabídek zapněte Build Insights tak, že vyberete Build Run Build Insights on Solution Build Insights. (Build>Run Build Insights on Solution>Build). Po dokončení sestavení se zobrazí okno se seznamem časů sestavení pro různé soubory, které jsou kompilovány. Vraťte se do okna zdrojového kódu a čas sestavení pro každý #include
soubor se zobrazí v CodeLensu. Vypadá nějak takto:
6 references | Build: 0.3560s
#include <iostream>
5 references | Build 0.0360s
#include <vector>
Pokud máte direktivu #include
, která se používá zřídka, ale výrazně ovlivňuje čas kompilace, může vám tento nástroj pomoct ji identifikovat.
V tomto článku jste viděli, jak zapnout diagnostiku zahrnutí C++ a CodeLens a jak pomocí diagnostiky zahrnutí jazyka C++ analyzovat, jak často se používá něco z zahrnutého souboru a jak #include
ovlivňuje čas sestavení.
Viz také
Přehled vyčištění V jazyce C/C++
Zahrnout zprávy o vyčištění