2008-09-10 8 views
6

estoy corriendo Visual Studio 2008 con el marco de la prueba material de pesadillas horribles-MS. El problema es que está enviando mi CPU al 100% (bien al 25% en un núcleo cuádruple).Por qué no puede ejecutar Visual Studio en más de un núcleo? CPU a 25%

Mi pregunta es ¿por qué no se puede ejecutar en Visual Studio más de un núcleo? Seguramente M $ debe tener suficiente control sobre cómo enhebrar para que funcione.

Respuesta

10

que tienen VS2008 que se ejecuta en los 4 CPUs. Simplemente configure este indicador de variable/proyecto de entorno.

/MP

(Se puede configurar en ++ Configuración de C/C, Advanced En la configuración del proyecto.)

Editar: La bandera MP también puede aceptar un número, por ejemplo,/MP2, lo que significa que solo se ejecutará en 2 núcleos. Dejarlo como solo/MP significa que se ejecutará en la cantidad máxima de núcleos.

Edit2: La bandera MP es probablemente sólo para el compilador.

+1

Eso funciona para todo? Lo único que sé de lo que funciona es la construcción, bueno, al menos eso es lo que funciona según MS. –

+2

Esto solo funcionará para proyectos C/C++. No tiene una opción para C#. –

+1

Además, solo hará la diferencia si su solución tiene múltiples proyectos o, posiblemente, configuraciones de compilación. –

2

También hemos añadido soporte de núcleo múltiple para hacer multi-hilo se basa en la línea de comandos para aquellos de ustedes con una gran cantidad de proyectos y de largo los tiempos de construcción. Activación del soporte de núcleo múltiple requiere sólo unas pocas propiedades nuevas y MSBuild gestiona todo el trabajo para programar proyectos de manera eficiente y eficaz. El equipo de MSBuild ha probado esta capacidad de escalar construyendo algunos proyectos en una máquina con 64 CPU.

que es de somasegar blog

Así que tipo de empezado a hacerlo, bueno al menos para la construcción.

0

bandera El/MP es sólo para construye, por lo menos esto es de acuerdo a esta msdn

Ahora me gustaría ser malo en ello, pero estoy bastante seguro es sólo para construcciones. Lo cual por supuesto todavía es muy útil.

0

estoy seguro de que es muy difícil. Enorme base de código GUI-pesado sin rosca a múltiples hilos. Suena como un 10 para mí.

Pero parece que usa varios núcleos para mí. El Intellesense parece enhebrado. El sistema de compilación tiene una construcción de múltiples proyectos y para la creación de múltiples archivos C++ también.

You problemas con estas herramientas suena un poco más profundo que lo bien que se utilizan CPUs.

6

Puede pedir a VS para compilar varios proyectos en paralelo, así como la compilación en paralelo (!?) Dentro de un proyecto.

Herramientas> Opciones> Proyectos y Soluciones> número máximo de proyectos paralelos a construir.

Esto construirá C++ y C# en paralelo, así!

3

Ahora que Visual Studio 2010 ha sido liberado por un momento, considerar la actualización a hacer uso del atributo parallelTestCount en el expediente del MSTest .testsettings, tal como se describe en How to: Run Unit Tests Faster Using a Computer with Multiple CPUs or Cores.

Hay algunas limitaciones, tales como:

  1. pruebas de unidad Sólo simples son compatibles (es decir, excluye codificados pruebas de interfaz de usuario y pruebas alojadas en ASP.NET)
  2. pruebas deben ser thread-safe (todo pruebas se ejecutan en el mismo proceso)
  3. no se puede obtener la cobertura de código (entre otros datos & diagnóstico), al mismo tiempo

ejemplo, usando a decir auto-detectar (el valor predeterminado es):

<?xml version="1.0" encoding="UTF-8"?> 
<TestSettings 
    name="Release" 
    id="{GUID}" 
    xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> 
    <Description> 
    These are default test settings for a local test run. 
    </Description> 
    <Execution parallelTestCount="0"> 
    (...) 
    </Execution> 
</TestSettings> 

algunos blogs han señalado que puede que tenga que cerrar y volver a abrir el proyecto para Visual Studio a notar agregaste/cambiaste ese atributo. Además, si edita el archivo de configuración de prueba con la GUI, probablemente tendrá que volver a agregar el atributo parallelTestCount.

4

En caso de que alguien se encuentre con esta vieja pregunta, VS2012 introdujo compilaciones paralelas como standard feature. Cita del artículo:

Visual Studio 2010 incluía una opción para "el número máximo de construcciones de proyectos paralelas". Aunque no hubo ninguna indicación de ninguna restricción, esta opción IDE solo funcionó para proyectos C++. Afortunadamente, esta restricción ya no se aplica a Visual Studio 11. Por el contrario, ahora hay compatibilidad total con para versiones paralelas en otros idiomas. Para ver esto, ejecute una copia de Process Explorer al mismo tiempo que se está construyendo una solución con numerosos proyectos. Verá que se crean varias instancias de MSBuild , tantas como se especifica en el "número máximo de versiones de proyectos paralelas".

0

Para Visual Studio 2010 Vaya a Herramientas> Opciones> Proyectos & Soluciones> Compilar y ejecutar.

A continuación, verá una entrada para introducir un número para el 'número máximo de construcciones de proyectos paralelas'; Mi PC tiene una CPU i7-3770, un quad core con HyperThreading, por lo que se establece en 8.

Para obtener información sobre las diferentes versiones de Visual Studio ir aquí y seleccione su versión: https://msdn.microsoft.com/en-us/library/cyhcc7zc(v=vs.100).aspx

por ejemplo, para Visual Studio 2010, esta propiedad solo afecta a las compilaciones de C++:

Especifica el número máximo de proyectos de Visual C++ que pueden compilarse al mismo tiempo. Para optimizar el proceso de compilación, la cantidad máxima de compilaciones de proyectos paralelas se establece automáticamente en la cantidad de CPU de su computadora. El máximo es 32.

Pero para Visual Studio es para C++ y C#:

número máximo de proyecto paralelo construye Especifica el número máximo de proyectos de C# visual que se puede construir al mismo tiempo, Visual C++ y. Para optimizar el proceso de compilación, la cantidad máxima de compilaciones de proyectos paralelas se establece automáticamente en la cantidad de CPU de su computadora. El máximo es 32.

Cuestiones relacionadas