Notre serveur de build prend trop de temps pour construire l'un de nos projets C ++. Il utilise Visual Studio 2008. Existe-t-il un moyen pour que devenv.com enregistre le temps nécessaire pour générer chaque projet dans la solution, afin que je sache sur quoi concentrer mes efforts?
Le matériel amélioré n'est pas une option dans ce cas.
J'ai essayé de définir la verbosité de sortie (sous Tools / Options / Projects and Solutions / Build and Run / MSBuild project build output verbosity). Cela ne semble pas avoir d'effet dans l'EDI.
Lors de l'exécution de MSBuild à partir de la ligne de commande (et, pour Visual Studio 2008, il doit s'agir de MSBuild v3.5), il affiche le temps total écoulé à la fin, mais pas dans l'EDI.
Je voulais vraiment un rapport de temps pour chaque projet de la solution, afin de pouvoir déterminer où le processus de construction prenait son temps.
Alternativement, puisque nous utilisons réellement NAnt pour conduire le processus de construction (nous utilisons Jetbrains TeamCity), y a-t-il un moyen pour que NAnt me dise le temps nécessaire pour chaque étape?
la source
Allez dans Outils → Options → Projets et solutions → Construire et exécuter → Verbosité de sortie de construction du projet MSBuild - réglé sur "Normal" ou "Détaillé", et le temps de construction apparaîtra dans la fenêtre de sortie.
la source
Visual Studio 2012-2019
Pour les projets MSBuild (par exemple tous les projets .Net):
Cliquez sur
Tools -> Options
puis sélectionnezProjects and Solutions -> Build and Run
. ChangerMSBuild project build output verbosity
enNormal
. Ainsi, il affichera le temps écoulé dans chaque projet de solution qu'il crée. Mais il n'y a malheureusement pas de temps écoulé sur tout le projet. Vous verrez également l'horodatage du démarrage de la constructionProjet FOR C / C ++:
Cliquez
Tools -> Options
puis sélectionnezProjects and Solutions -> VC++ Project Settings
.Changer
Build Timing
enYes
.la source
Build Timing
car elle affiche uniquement le temps total.Pour Visual Studio 2012, vous pouvez utiliser l' extension Build Monitor .
la source
Outils-> Options-> Projets et solutions-> Construire et exécuter->
Définissez «La verbosité de sortie de la génération de projet MSBuild» de «Minimal» à «Normal»
la source
J'ai créé une extension pour mesurer les temps de construction et présenter l'ordre des événements dans un graphique: Visual Studio Build Timer .
Il est disponible sur le marché de Visual Studio et fonctionne pour VS2015, VS2017 et VS2019.
Je trouve la présentation visuelle très utile. En plus de montrer quels projets prennent plus de temps, il montre également les dépendances entre eux, c'est-à-dire les projets qui attendent que les autres soient terminés avant de commencer. De cette façon, vous pouvez repérer les goulots d'étranglement dans la construction et voir quelles dépendances doivent être rompues afin d'augmenter la parallélisation de votre construction.
la source
Si vous êtes bloqué sur VS2005, vous pouvez utiliser le plugin vs-build-timer . À la fin d'une construction, il affiche le temps total pris et un résumé (facultatif) de chacune des durées du projet.
Avertissement; Je l'ai écrit. Et oui, j'ai besoin de créer un installateur ... un jour!
la source
Si vous souhaitez visualiser votre build, vous pouvez utiliser IncrediBuild. IncrediBuild est maintenant disponible en mode autonome (non distribué mais pour une utilisation uniquement sur 8 cœurs sur votre machine locale) gratuitement dans le cadre de Visual Studio 2015 Update 1
Avis de non-responsabilité: je travaille pour IncrediBuild
la source
Puisque votre question implique l'utilisation de DevEnv à partir de la ligne de commande, je suggérerais également d'utiliser MSBuild (qui peut créer des fichiers .sln sans modification).
msbuild /?
vous montrera d'autres options utiles pour le filelogger.la source
Je me suis retrouvé ici parce que je voulais juste que la date et l'heure soient incluses dans la sortie de construction. Si d'autres recherchent quelque chose de similaire, c'est aussi simple que d'ajouter
echo %date% %time%
aux événements Pre-build et / ou Post-build sous project, Properties → Compile → Build Events .la source
Faites d'abord une compilation et voyez quel projet apparaît en premier dans la sortie de construction ( Ctrl+ Homedans la fenêtre de sortie). Cliquez avec le bouton droit sur ce projet → Propriétés du projet → Compiler → Événements de construction → Pré-construction . Et
echo ###########%date% %time%#############
.Donc, chaque fois que vous voyez les résultats de la construction (ou pendant la construction), faites Ctrl+ Homedans la fenêtre de sortie. Et quelque part dans cette zone, l'heure et la date regardent votre visage!
Oh et vous pourriez finir par ajouter ces détails à de nombreux projets car l'ordre de construction peut changer :)
J'ai trouvé une meilleure solution! ###
Outils → Options → Projets et solutions → Construire et exécuter → Verbosité de sortie de la génération de projet MSBuild = Normal (ou supérieur à Minimal ). Cela ajoute l'heure au début / en haut de la fenêtre de sortie. Ctrl+Home dans la fenêtre de sortie devrait faire.
Si nous voulons voir combien de temps chaque projet prend, alors Projets & Solutions → Paramètres du projet VC ++ → Calendrier de construction = oui . Il est applicable à tous les projets; "VC ++" est trompeur.
la source
Si vous souhaitez appeler un programme externe capable de suivre vos temps de construction totaux, vous pouvez utiliser la solution suivante pour VS 2010 (et peut-être plus ancienne). Le code ci-dessous utilise CTime de Casey Muratori. Bien sûr, vous pouvez également l'utiliser pour simplement imprimer le temps de construction.
Ouvrez l'explorateur de macros et collez ce qui suit avant
End Module
:Réponse prise d' ici et d' ici .
la source
Options -> Projets et solutions -> Paramètres de projet VC ++ -> Calendrier de construction
la source