Unser Build-Server benötigt zu lange, um eines unserer C ++ - Projekte zu erstellen. Es verwendet Visual Studio 2008. Gibt es eine Möglichkeit, devenv.com dazu zu bringen, die Zeit zu protokollieren, die zum Erstellen jedes Projekts in der Lösung benötigt wird, damit ich weiß, wo ich meine Bemühungen konzentrieren muss?
Verbesserte Hardware ist in diesem Fall keine Option.
Ich habe versucht, die Ausführlichkeit der Ausgabe festzulegen (unter Extras / Optionen / Projekte und Lösungen / Erstellen und Ausführen / Ausführlichkeit der Ausgabe des MSBuild-Projekts). Dies scheint in der IDE keine Auswirkungen zu haben.
Wenn Sie MSBuild über die Befehlszeile ausführen (und für Visual Studio 2008 muss es MSBuild v3.5 sein), wird die am Ende verstrichene Gesamtzeit angezeigt, jedoch nicht in der IDE.
Ich wollte wirklich einen zeitaufwändigen Bericht für jedes Projekt in der Lösung, damit ich herausfinden konnte, wo der Erstellungsprozess seine Zeit in Anspruch nahm.
Gibt es eine Möglichkeit, NAnt dazu zu bringen, mir die für jeden Schritt benötigte Zeit mitzuteilen, da wir NAnt tatsächlich verwenden, um den Erstellungsprozess voranzutreiben (wir verwenden Jetbrains TeamCity)?
quelle
Gehen Sie zu Extras → Optionen → Projekte und Lösungen → Erstellen und Ausführen → Ausführlichkeit der Ausgabe der MSBuild-Projekterstellung - auf "Normal" oder "Detailliert" eingestellt, und die Erstellungszeit wird im Ausgabefenster angezeigt.
quelle
Visual Studio 2012 - 2019
Für MSBuild-Projekte (zB alle .Net-Projekte):
Klicken Sie auf
Tools -> Options
und wählen Sie dannProjects and Solutions -> Build and Run
. Wechseln SieMSBuild project build output verbosity
zuNormal
. Daher wird in jedem von ihm erstellten Lösungsprojekt die verstrichene Zeit angezeigt. Leider gibt es für das gesamte Projekt keine Summe der verstrichenen Zeit. Sie sehen auch den Zeitstempel für den Start des BuildsFÜR C / C ++ - Projekt:
Klicken Sie auf
Tools -> Options
und wählen Sie dannProjects and Solutions -> VC++ Project Settings
.Wechseln Sie
Build Timing
zuYes
.quelle
Build Timing
da nur die Gesamtzeit angezeigt wird.Für Visual Studio 2012 können Sie die Build Monitor- Erweiterung verwenden.
quelle
Wenn Sie mit VS2005 nicht weiterkommen, können Sie das vs-build-timer-Plugin verwenden . Nach Abschluss eines Builds werden die Gesamtzeit und eine (optionale) Zusammenfassung der einzelnen Projektdauern angezeigt.
Haftungsausschluss; Ich schrieb es. Und ja, ich muss einen Installer erstellen ... eines Tages!
quelle
Extras-> Optionen-> Projekte und Lösungen-> Erstellen und Ausführen->
Setzen Sie "Ausführlichkeit der Ausgabe des MSBuild-Projektaufbaus" von "Minimal" auf "Normal".
quelle
Wenn Sie Ihren Build visualisieren möchten, können Sie IncrediBuild verwenden. IncrediBuild ist jetzt im Standalone-Modus (nicht verteilt, aber nur für 8 Kerne auf Ihrem lokalen Computer) als Teil von Visual Studio 2015 Update 1 kostenlos verfügbar
Haftungsausschluss: Ich arbeite für IncrediBuild
quelle
Da Ihre Frage die Verwendung von DevEnv über die Befehlszeile umfasst, würde ich auch die Verwendung von MSBuild vorschlagen (mit dem SLN-Dateien ohne Änderung erstellt werden können).
msbuild /?
zeigt Ihnen weitere nützliche Optionen für den Filelogger.quelle
Ich habe eine Erweiterung erstellt, um die Erstellungszeiten zu messen und die Reihenfolge der Ereignisse in einem Diagramm darzustellen: Visual Studio Build Timer .
Es ist auf dem Marktplatz für visuelle Studios erhältlich und funktioniert für VS2015, VS2017 und VS2019.
Ich finde die visuelle Präsentation sehr hilfreich. Neben der Anzeige, welche Projekte länger dauern, werden auch Abhängigkeiten zwischen ihnen angezeigt, dh Projekte, die darauf warten, dass andere abgeschlossen werden, bevor sie beginnen. Auf diese Weise können Sie Engpässe im Build erkennen und sehen, welche Abhängigkeiten aufgehoben werden müssen, um die Parallelisierung Ihres Builds zu erhöhen.
quelle
Ich bin hier gelandet, weil ich nur das Datum und die Uhrzeit in der Build-Ausgabe haben wollte. Wenn andere nach etwas Ähnlichem suchen, ist es so einfach wie das Hinzufügen
echo %date% %time%
zu den Pre-Build- und / oder Post-Build-Ereignissen unter Projekt Eigenschaften → Kompilieren → Build-Ereignisse .quelle
Führen Sie zuerst einen Build durch und sehen Sie, welches Projekt zuerst in der Build-Ausgabe angezeigt wird ( Ctrl+ Homeim Ausgabefenster). Klicken Sie mit der rechten Maustaste auf das Projekt → Projekteigenschaften → Kompilieren → Ereignisse erstellen → Vorab erstellen . Und
echo ###########%date% %time%#############
.Jedes Mal, wenn Sie Build-Ergebnisse (oder während des Builds) sehen, tun Sie Ctrl+ Homeim Ausgabefenster. Und irgendwo in diesem Bereich starren Uhrzeit und Datum auf Ihr Gesicht!
Oh, und Sie könnten diese Details zu vielen Projekten hinzufügen, da sich die Erstellungsreihenfolge ändern kann :)
Ich habe eine bessere Lösung gefunden! ###
Extras → Optionen → Projekte und Lösungen → Erstellen und Ausführen → Ausführlichkeit der Ausgabe von MSBuild-Projekterstellungen = Normal (oder höher als Minimal ). Dies fügt die Zeit am Anfang / Anfang des Ausgabefensters hinzu. Ctrl+ Homeim Ausgabefenster sollte reichen.
Wenn wir sehen möchten, wie viel Zeit jedes Projekt benötigt, dann Projekte & Lösungen → VC ++ - Projekteinstellungen → Build-Timing = Ja . Es gilt für alle Projekte; "VC ++" ist irreführend.
quelle
Wenn Sie ein externes Programm aufrufen möchten, das Ihre gesamten Erstellungszeiten nachverfolgen kann, können Sie die folgende Lösung für VS 2010 (und möglicherweise älter) verwenden. Der folgende Code verwendet CTime von Casey Muratori. Natürlich können Sie damit auch einfach die Erstellungszeit drucken.
Öffnen Sie den Makro-Explorer und fügen Sie Folgendes ein
End Module
:Antwort von hier und hier genommen .
quelle
Optionen -> Projekte und Lösungen -> VC ++ - Projekteinstellungen -> Build-Timing
quelle