2009-11-08 24 views
11

Sono interessato a quanto tempo spendo per costruire i miei progetti ogni giorno. C'è uno strumento esistente che fornisce tali statistiche?Statistiche di Visual Studio Build

Grazie!

+0

che cosa si intende per "quanto tempo speso per la costruzione di .."? Intendi dal momento in cui hai iniziato a fare clic su "build" fino al momento in cui è stato completato (indipendentemente dal successo o meno)? –

+0

Sì, esattamente così. – Danra

risposta

11

MSBuild (ciò che VisualStudio utilizza per creare) può fornire queste informazioni. Includere nel vostro MSBuild.exe chiamare l'interruttore PerformanceSummary:

 
msbuild.exe your.sln /clp:PerformanceSummary ... 

che vi darà qualcosa di simile alla fine del registro corsa costruzione:

 
Project Performance Summary: 
     374 ms your.sln 1 calls 

Target Performance Summary: 
... 
     109 ms GetWinFXPath        1 calls 
     156 ms EntityDeploy        1 calls 
     390 ms Build          2 calls 
... 
Time Elapsed 00:00:00.43 

Se si desidera un file che contiene solo questo informazioni, piuttosto che dopo aver scritto alla console, è possibile utilizzare questo interruttore (con file di log impostato su qualche percorso):

 
/logger:FileLogger,Microsoft.Build.Engine;logfile=perf.log;encoding=Unicode;performancesummary 
+0

Ottima risposta! Esiste comunque la possibilità di modificare i parametri di msbuild.exe nell'IDE di Visual Studio? Suppongo che potrei sostituire il msbuild.exe originale con uno script che esegue il msbuild.exe originale con alcuni parametri, ma ci deve essere un modo più pulito? – Danra

+2

Ho trovato la risposta da solo. http://msdn.microsoft.com/en-us/library/ms404301.aspx Grazie! – Danra

3

C'è costruire evento, si possono usare, è anche possibile eseguire uno script batch prima e dopo una generazione eco tempo >> filename

e quindi rendere il file e ottenere le statistiche.

(goto costruire eventi nella pagina delle proprietà del progetto)

+0

So che posso scriverlo, stavo chiedendo se esiste uno * strumento/script * esistente che posso usare, preferibilmente integrato nell'IDE ... – Danra

+1

Immagino che si possa scrivere un'attività di compilazione e collegarla all'ambiente , ma non ne so uno che calcola i tempi di costruzione. Mi guarderò intorno, codeproject potrebbe avere qualcosa. – Dani

0

Se si sceglie di usare strumenti di integrazione continui, come Cruise o Cruise.NET, questi strumenti fanno un ottimo lavoro di mostrare metriche quali tempi di costruzione, tempi medi di build ecc.

+0

Questo in realtà potrebbe vanificare lo scopo poiché sono interessato a quanto tempo * interattivo * va sprecato - cioè, le build vengono eseguite manualmente per testare le modifiche nel codice. Non conosco veramente Cruise Control, quindi forse mi mancano alcune delle sue funzionalità. – Danra

Problemi correlati