Udostępnij za pośrednictwem


Równoległe tworzenie wielu projektów za pomocą narzędzia MSBuild

Program MSBuild służy do tworzenia wielu projektów szybciej uruchamiając je równolegle.Wielordzeniowe procesory lub wielu procesora komputera, równolegle buduje, użyj następujących ustawień:

  • /maxcpucount Przełączanie w wierszu polecenia.

  • BuildInParallel Parametru zadania w zadanie programu MSBuild.

[!UWAGA]

/verbosity (/v) Przełącznik w wierszu polecenia, może również wpływać na wydajność kompilacji.Jeśli poziom szczegółowości informacji dziennika kompilacji jest ustawiony na szczegółowe lub diagnostycznych, które są używane do rozwiązywania problemów, może spaść wydajność kompilacji.Aby uzyskać więcej informacji, zobacz Uzyskiwanie dzienników kompilacji za pomocą narzędzia MSBuild i Informacje w wierszu polecenia programu MSBuild.

Przełącznik /maxcpucount

Jeśli używasz /maxcpucount przełączanie, lub /m w skrócie, MSBuild można utworzyć określoną liczbę procesów MSBuild.exe, które mogą być wykonywane równolegle.Procesy te są nazywane także "procesy robocze". Każdy proces roboczy używa oddzielnych core lub procesor, jeśli takie są dostępne zbudować projekt w tym samym czasie o innych dostępnych procesorów może być zdobycie innych projektów.Na przykład ustawienie tego parametru na wartość "4" powoduje MSBuild utworzyć cztery procesów roboczych do budowania projektu.

Jeśli dołączysz /maxcpucount wymaga użycia przełącznika bez określenia wartości, program MSBuild do liczby procesorów w komputerze.

Aby uzyskać więcej informacji na temat tego przełącznika, który został wprowadzony w MSBuild 3.5, zobacz Informacje w wierszu polecenia programu MSBuild.

Poniższy przykład powoduje, że program MSBuild używać trzech procesów roboczych.Jeśli używana jest ta konfiguracja, program MSBuild można utworzyć trzy projekty w tym samym czasie.

msbuild.exe myproj.proj /maxcpucount:3

Parametr zadania BuildInParallel

BuildInParallelto parametr opcjonalny, boolean na MSBuild zadania.Gdy BuildInParallel jest ustawiona na true (wartość domyślna), wiele procesów roboczych są generowane do tworzenia dowolnej liczby projektów w tym samym czasie, jak to możliwe.Aby działać poprawnie, to /maxcpucount przełącznik musi być ustawiona na wartość większą niż 1 i systemu muszą być co najmniej dual-core lub mają dwa lub większą liczbę procesorów.

Oto przykład, pobranych z microsoft.common.targets o tym, jak ustawić BuildInParallel parametru.

<PropertyGroup>
    <BuildInParallel Condition="'$(BuildInParallel)' == 
        ''">true</BuildInParallel>
</PropertyGroup>
<MSBuild
    Projects="@(_MSBuildProjectReferenceExistent)"
    Targets="GetTargetPath"
    BuildInParallel="$(BuildInParallel)"
    Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); 
        %(_MSBuildProjectReferenceExistent.SetPlatform)"
    Condition="'@(NonVCProjectReference)'!='' and 
        ('$(BuildingSolutionFile)' == 'true' or 
        '$(BuildingInsideVisualStudio)' == 'true' or 
        '$(BuildProjectReferences)' != 'true') and   
        '@(_MSBuildProjectReferenceExistent)' != ''"
    ContinueOnError="!$(BuildingProject)">
    <Output TaskParameter="TargetOutputs" 
        ItemName="_ResolvedProjectReferencePaths"/>
</MSBuild>

Zobacz też

Koncepcje

Używanie wielu procesorów w projektach kompilacji

Zapisywanie rejestratorów uwzględniających wiele procesorów

Inne zasoby

Dostrajanie C++ budować proste blogu