Nuestro servidor de compilación tarda demasiado en compilar uno de nuestros proyectos de C ++. Utiliza Visual Studio 2008. ¿Hay alguna forma de hacer que devenv.com registre el tiempo necesario para construir cada proyecto en la solución, de modo que sepa dónde enfocar mis esfuerzos?
El hardware mejorado no es una opción en este caso.
Intenté configurar la verbosidad de salida (en Herramientas / Opciones / Proyectos y soluciones / Construir y ejecutar / Verbosidad de salida de compilación del proyecto MSBuild). 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 llevara mucho tiempo para cada proyecto en la solución, de modo que pudiera averiguar dónde se estaba demorando el proceso de compilación.
Alternativamente, dado que en realidad usamos NAnt para conducir el proceso de compilación (usamos Jetbrains TeamCity), ¿hay alguna manera de que NAnt me diga el tiempo necesario para cada paso?
fuente
Vaya a Herramientas → Opciones → Proyectos y soluciones → Compilar y ejecutar → Verbosidad de salida de compilación del proyecto MSBuild - configure en "Normal" o "Detallado", y el tiempo de compilación aparecerá en la ventana de salida.
fuente
Visual Studio 2012-2019
Para proyectos de MSBuild (por ejemplo, todos los proyectos .Net):
haga clic
Tools -> Options
y luego seleccioneProjects and Solutions -> Build and Run
. CambiarMSBuild project build output verbosity
aNormal
. Por lo tanto, mostrará el tiempo transcurrido en cada proyecto de solución que construya. Pero desafortunadamente no hay Suma de tiempo transcurrido en todo el proyecto. También verá la marca de tiempo de inicio de compilaciónPara el proyecto C / C ++:
Haga clic
Tools -> Options
y luego seleccioneProjects and Solutions -> VC++ Project Settings
.Cambiar
Build Timing
aYes
.fuente
Build Timing
ya que solo muestra el tiempo total.Para Visual Studio 2012, podría usar la extensión Build Monitor .
fuente
Si está atascado en VS2005, puede usar el complemento vs-build-timer . Al finalizar una compilación, muestra el tiempo total empleado y un resumen (opcional) de cada una de las duraciones del proyecto.
Descargo de responsabilidad; Yo lo escribi. Y sí, necesito crear un instalador ... ¡algún día!
fuente
Herramientas-> Opciones-> Proyectos y soluciones-> Compilar y ejecutar->
Establezca "Verbosidad de salida de compilación del proyecto MSBuild" de "Mínimo" a "Normal"
fuente
Si desea visualizar su compilación, puede usar IncrediBuild. IncrediBuild ahora está disponible en modo independiente (no distribuido pero solo para usar en 8 núcleos en su máquina local) de forma gratuita como parte de Visual Studio 2015 Update 1
Descargo de responsabilidad: trabajo para IncrediBuild
fuente
Dado que su pregunta implica el uso de DevEnv desde la línea de comandos, también sugeriría usar MSBuild (que puede construir archivos .sln sin modificación).
msbuild /?
le mostrará otras opciones útiles para el registrador de archivos.fuente
He creado una extensión para medir los tiempos de compilación y presentar el orden de los eventos en un gráfico: Visual Studio Build Timer .
Está disponible en el mercado visual studio y funciona para VS2015, VS2017 y VS2019.
La presentación visual me parece bastante útil. Además de mostrar qué proyectos tardan más, también muestra dependencias entre ellos, es decir, proyectos que esperan que otros se completen antes de comenzar. De esta manera, puede detectar cuellos de botella en la compilación y ver qué dependencias deben romperse para aumentar la paralelización de su compilación.
fuente
Terminé aquí porque solo quería la fecha y la hora incluidas en el resultado de la compilación. En caso de que otros busquen algo similar, es tan simple como agregar
echo %date% %time%
a los eventos previos a la compilación y / o posteriores a la construcción en el proyecto, Propiedades → Compilar → Eventos de compilación .fuente
Realice primero una compilación y vea qué proyecto aparece primero en la salida de compilación ( Ctrl+ Homeen la ventana de salida). Haga clic derecho en ese proyecto → Propiedades del proyecto → Compilar → Eventos de generación → Pre-construcción . Y
echo ###########%date% %time%#############
.Por lo tanto, cada vez que vea resultados de compilación (o durante la compilación) haga Ctrl+ Homeen la ventana de salida. ¡Y en algún lugar de esa área, la hora y la fecha te miran a la cara!
Ah, y podría 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 → Verbosidad de salida de compilación del proyecto MSBuild = Normal (o superior a Mínimo ). Esto agrega el tiempo en el inicio / inicio de la ventana de salida. Ctrl+Home 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 VC ++ → Tiempo de compilación = sí . Es aplicable a todos los proyectos; "VC ++" es engañoso.
fuente
Si desea invocar un programa externo que pueda rastrear sus tiempos de compilación totales, puede usar la siguiente solución para VS 2010 (y tal vez más antiguo). El siguiente código utiliza CTime de Casey Muratori. Por supuesto, también puede usarlo para imprimir simplemente el tiempo de compilación.
Abra el explorador de macros y pegue lo siguiente antes
End Module
:Respuesta tomada de aquí y de aquí .
fuente
Opciones -> Proyectos y soluciones -> Configuración del proyecto VC ++ -> Tiempo de compilación
fuente