C++ Include Diagnostics in Visual Studio
Ab Visual Studio 17.8 hilft Ihnen Visual Studio beim Analysieren Ihrer C++- #include
Dateien:
- Zeigt an, wie oft und wo etwas aus jeder Headerdatei verwendet wird.
- Zeigt die Buildzeit für jede
#include
Datei an, die Ihnen hilft, Möglichkeiten zur Optimierung der Buildzeit zu identifizieren.
Aktivieren von C++ Include Diagnostics and CodeLens
Das Feature "C++-Diagnose einschließen" ist standardmäßig deaktiviert. Zum Aktivieren klicken Sie mit der rechten Maustaste im Code-Editor, um das Kontextmenü anzuzeigen, und wählen Sie "Direktiven>aktivieren" aus, um #include Diagnose einzuschalten.
Im Kontextmenü wird die Option "Direktiven einschließen" hervorgehoben, wodurch zwei Optionen angezeigt werden: "Sortieren # enthalten Direktiven" und "Turn # include" Diagnose ein.
Informationen zu Ihren #include
Dateien werden standardmäßig über CodeLens angezeigt. Um die relevanten CodeLens-Einstellungen zu aktivieren, navigieren Sie zum Tools>Options>Text Editor>All Languages>CodeLens, und bestätigen Sie, dass sowohl C++-#include Verweise anzeigen als auch C++-Kompilierungszeiten aktiviert sind.
Das Optionsfenster ist auf den Text-Editor > alle Sprachen > CodeLens festgelegt. Die Option "C++ anzeigen" enthält Verweise und Optionen für die C++-Kompilierungszeit anzeigen.
Anzeigen von #include
Verweisen
Um die Include Diagnostics auszuprobieren, erstellen Sie ein neues C++-Konsolenprojekt. Ersetzen Sie den Inhalt der datei Standard .cpp
durch den folgenden Code:
#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);
}
Wenn C++ Include Diagnostics aktiviert ist, wird der Code aus einer Headerdatei in der aktuellen Codedatei oberhalb der Headerdatei angezeigt. Es sieht wie folgt für das vorherige Codebeispiel aus:
6 references
#include <iostream>
5 references
#include <vector>
Wählen Sie im Code-Editor oben #include <vector>
fünf Verweise und eine Zusammenfassung der Speicherorte aus, an <vector>
denen Code aus dieser Datei verwendet wird:
Das Kontextfenster "C++-Diagnose einschließen" zeigt, dass es fünf Stellen im Code gibt, an denen Code aus der Vektorheaderdatei in der aktuellen Codedatei verwendet wird. Beispielsweise wird sie zweimal für die Definition der Add10-Funktion als Rückgabewert und Parameter verwendet. Er wird in Zeile 17 in der Deklaration von newVec usw. verwendet.
Wählen Sie ein Element aus, um zu seinem Speicherort im Code zu wechseln.
Erstellungszeit anzeigen #include
Um die Buildzeit für jede Datei anzuzeigen, die Sie #include
zuerst mit Build Insights erstellen.
Aktivieren Sie Build Insights über die Menüleiste Standard, indem Sie ">Build Insights für Projektmappenbuild> ausführen" auswählen. Nach Abschluss des Builds wird ein Fenster angezeigt, in dem die Buildzeiten für die verschiedenen kompilierten Dateien aufgeführt werden. Kehren Sie zum Quellcodefenster zurück, und die Buildzeit für jede #include
Datei wird in CodeLens angezeigt. Es sieht ähnlich wie folgt aus:
6 references | Build: 0.3560s
#include <iostream>
5 references | Build 0.0360s
#include <vector>
Wenn Sie eine #include
Richtlinie haben, die selten verwendet wird, sich aber erheblich auf die Kompilierzeit auswirkt, kann dieses Tool Ihnen dabei helfen, sie zu identifizieren.
In diesem Artikel haben Sie erfahren, wie Sie C++ Include Diagnostics and CodeLens aktivieren und wie Sie C++ Include Diagnostics verwenden, um zu analysieren, wie oft etwas aus einer Includedatei verwendet wird und wie sich die #include
Buildzeit auswirkt.
Siehe auch
Übersicht über die C/C++-Include-Bereinigung
Meldungen der Include-Bereinigung