visual-studio - visual - vs code autoclose html
Mostrar tiempos de construcción en Visual Studio? (11)
Nuestro servidor de compilación tarda demasiado en construir uno de nuestros proyectos C ++. Utiliza Visual Studio 2008. ¿Hay alguna forma de que devenv.com registre el tiempo necesario para construir cada proyecto en la solución, de modo que sepa dónde concentrar mis esfuerzos?
El hardware mejorado no es una opción en este caso.
He intentado configurar la verbosidad de salida (en Herramientas / Opciones / Proyectos y Soluciones / Compilar y ejecutar / MSBuild project Build Out Verbosity). Esto no parece tener ningún efecto en el IDE.
Al ejecutar MSBuild desde la línea de comandos (y, para Visual Studio 2008, debe ser MSBuild v3.5), muestra el tiempo total transcurrido al final, pero no en el IDE.
Realmente quería un informe que tomara el tiempo para cada proyecto en la solución, para poder averiguar dónde estaba tomando su tiempo el proceso de construcción.
Alternativamente, dado que realmente usamos NAnt para conducir el proceso de construcción (utilizamos Jetbrains TeamCity), ¿hay alguna manera de que NAnt me diga el tiempo que se necesita para cada paso?
Visual Studio 2015, 2013 y 2012
Para proyectos de MSBuild (por ejemplo, todos los .Net-Projects):
Haga clic enTools -> Options
y luego seleccioneProjects and Solutions -> Build and Run
. Cambie laMSBuild project build output verbosity
aNormal
. Por lo tanto, mostrará el tiempo transcurrido en cada proyecto de solución que genere. Pero desafortunadamente no hay suma de tiempo transcurrido sobre todo el proyecto. También verá la Marca de tiempo de Build startedPARA Proyecto C / C ++:
Haga clic en Tools -> Options
y luego seleccione Projects and Solutions -> VC++ Project Settings
.
Cambie el Build Timing
a Yes
.
Dado que su pregunta implica el uso de DevEnv desde la línea de comandos, también sugiero usar MSBuild (que puede crear archivos .sln sin modificaciones).
msbuild /fl /flp:Verbosity=diagnostic Your.sln
msbuild /?
le mostrará otras opciones útiles para el registrador de archivos.
Haga una compilación primero y vea qué proyecto está apareciendo primero en la salida de compilación ( Ctrl + Inicio en la ventana de salida). Haga clic derecho en ese proyecto → Propiedades del proyecto → Compilar → Desarrollar eventos → Preconstruir . Y echo ###########%date% %time%#############
.
Entonces, cada vez que vea resultados de compilación (o durante la construcción), haga Ctrl + Inicio en la ventana de resultados. ¡Y en algún lugar de esa área, la fecha y la hora te miran fijamente!
Ah, y podrías terminar agregando estos detalles a muchos proyectos, ya que el orden de compilación puede cambiar :)
¡Encontré una mejor solución! ###
Herramientas → Opciones → Proyectos y soluciones → Compilar y ejecutar → MSBuild project build output verbosity = Normal (o por encima de Mínimo ). Esto agrega el tiempo en la ventana de salida inicial / superior. Ctrl + Inicio en la ventana de salida debería hacer.
Si queremos ver cuánto tiempo lleva cada proyecto, entonces Proyectos y soluciones → Configuración del proyecto de VC ++ → Tiempo de compilación = sí . Es aplicable a todos los proyectos; "VC ++" es engañoso.
Herramientas ... Opciones ... Proyectos y soluciones .... Nivel de detalle de la salida de compilación del proyecto MSBuild: configurado en "Normal" o "Detallado", y el tiempo de compilación aparecerá en la ventana de resultados
Herramientas-> Opciones-> Proyectos y soluciones-> Construir y ejecutar->
Establezca "Nivel de detalle de la salida de compilación del proyecto de MSBuild" de "Mínimo" a "Normal"
Para Visual Studio 2012, puede usar la extensión Build Monitor .
Si desea invocar un programa externo que puede rastrear sus tiempos totales de compilación, puede usar la siguiente solución para VS 2010 (y tal vez más). El siguiente código usa CTime por Casey Muratori. Por supuesto, también puedes usarlo para simplemente imprimir el tiempo de compilación.
Abra el macro explorer y pegue lo siguiente antes de End Module
:
Dim buildStart As Date
Private Sub RunCtime(ByVal StartRatherThanEnd As Boolean)
Dim Arg As String
Dim psi As New System.Diagnostics.ProcessStartInfo("ctime.exe")
If StartRatherThanEnd Then
psi.Arguments = "-begin"
Else
psi.Arguments = "-end"
End If
psi.Arguments += " c:/my/path/build.ctm"
psi.RedirectStandardOutput = False
psi.WindowStyle = ProcessWindowStyle.Hidden
psi.UseShellExecute = False
psi.CreateNoWindow = True
Dim process As System.Diagnostics.Process
process = System.Diagnostics.Process.Start(psi)
Dim myOutput As System.IO.StreamReader = process.StandardOutput
process.WaitForExit(2000)
If process.HasExited Then
Dim output As String = myOutput.ReadToEnd
WriteToBuildWindow("CTime output: " + output)
End If
End Sub
Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
WriteToBuildWindow("Build started!")
buildStart = Date.Now
RunCtime(True)
End Sub
Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
Dim buildTime = Date.Now - buildStart
WriteToBuildWindow(String.Format("Total build time: {0} seconds", buildTime.ToString))
RunCtime(False)
End Sub
Private Sub WriteToBuildWindow(ByVal message As String)
Dim win As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
Dim ow As OutputWindow = CType(win.Object, OutputWindow)
If (Not message.EndsWith(vbCrLf)) Then
message = message + vbCrLf
End If
ow.OutputWindowPanes.Item("Build").OutputString(message)
End Sub
Si desea visualizar su construcción, puede usar IncrediBuild. IncrediBuild ahora está disponible en modo independiente (no distribuido, pero solo para uso en 8 núcleos en su máquina local) de forma gratuita como parte de Visual Studio 2015 Update 1
Descargo de responsabilidad: yo trabajo para IncrediBuild
Si está atascado en VS2005, puede usar el complemento vs-build-timer . Al completar una compilación, muestra el tiempo total empleado y un resumen (opcional) de cada una de las duraciones del proyecto.
Renuncia; Yo lo escribi. Y sí, necesito crear un instalador ... ¡algún día!
Terminé aquí porque solo quería incluir la fecha y la hora en el resultado de compilación. Si otros buscan algo similar, es tan simple como agregar echo %date% %time%
a los eventos Preconstruidos y Postconstruidos en el proyecto, Propiedades → Compilar → Crear eventos .
Herramientas de menú → Opciones → Proyectos y soluciones → Configuración de proyecto de VC ++ → El tiempo de compilación debería funcionar.