2010-05-17 23 views
24

Tengo una gran solución con más de 40 proyectos. Casi la mitad de ellos son proyectos de prueba. En mi proyecto utilizamos tanto Contratos de código, Análisis de código, Análisis de estilo. Quiero ser capaz de construir los proyectos que no dependen en paralelo en mi CPU quad core.Visual Studio 2010, cómo crear proyectos en paralelo en multinúcleo

¿Cómo puedo configurar msbuild para construir los proyectos en paralelo?

+0

No está claro si esta pregunta se trata de compilar directamente en VS2010 o de compilar a través de msbuild4. Su comentario a continuación sobre la contención durante el registro merece ser una respuesta – GregC

Respuesta

4

sé que no es un clon de nmake que soporta el interruptor -j para compilar de forma paralela:

http://qt.gitorious.org/qt-labs/jom

y también hay un corte para MSBUILD, búscalo en google. También sé que hay una herramienta que permite construir en varias máquinas y quizás también en múltiples núcleos, pero no recuerdo su nombre en este momento.

Espero que esto ayude.

13

Se podría iniciar la construcción en MSBuild en paralelo por:

  • se establece el atributo BuildInParallel de MSBuild tarea a true

    <Target Name="RunInParallel"> 
        <MSBuild BuildInParallel="true" 
          Projects="@(Projects)" 
          Targets="RunCodeAnalysis"> 
        </MSBuild> 
    </Target> 
    
  • O llamando msbuild con el parámetro /maxcpucount:X donde X especifica el número de procesos de trabajo que están involucrados en la compilación. Esta solución se adapta mejor a su necesidad.

    msbuild [YourSolutionFile.sln] /maxcpucount:4 /p:Platform=AnyCpu;Configuration=Debug; 
    

de Scott Hanselman escribió a post en que, si se desea integrar (un poco) el proceso en Visual Studio como una herramienta externa.


para C++ proyectos podría configurar acumulación multiprocesador directamente en Visual Studio:

Tools | Options | Projects and Solutions | Build and Run

+0

Gracias , No estamos en C++, pero si hay otros lectores, entonces debería echar un vistazo a esta herramienta: http://www.xoreax.com/visual_studio.htm –

16

En Visual Studio: Herramientas | Opciones | Proyectos y soluciones | Construir y ejecutar Esto debería ser el conteo de CPU predeterminado.

Desde la línea de comandos: msbuild /maxcpucount[:n] (no se especifica n, entonces utilizará el recuento de la CPU).

+14

También encontramos que en Visual Studio: Herramientas -> Opciones -> Proyectos y soluciones -> Construir y ejecutar ->. Puede establecer la verbosidad de salida de compilación del proyecto de MSBuild y la verbosidad del archivo de registro: a Silencio Esto hará que el proceso de compilación MUCHO más rápido y el IDE receptivo durante la compilación. (Parece que VS2010 el bloqueo de IDE relacionado con la salida es el factor principal en el proceso de compilación lenta ess) <- MS: ¡Por favor, arregle! –

+1

Dios te bendiga @thomasnn –

3

Entonces la verdadera respuesta que está buscando es agregar la bandera del compilador/MP a los indicadores del compilador CXX.

En Visual Studio En la página de propiedades del proyecto> C \ C++> Compilación general de varios procesadores simplemente escriba Sí (/ MP). Ahora construirá los 40 proyectos en paralelo en cada uno de los núcleos

2

Esto ahora está integrado en Visual Studio 11 para todos los idiomas, no solo para C++. "Visual Studio 2010 incluía una opción para" el número máximo de compilaciones de proyectos paralelas ". Aunque no había ninguna indicación de ninguna restricción, esta opción IDE solo funcionaba para proyectos C++.Afortunadamente, esta restricción ya no se aplica a Visual Studio 11 "de www.visualstudiomagazine.com

Cuestiones relacionadas