Générations multiprocesseurs

Mise à jour : novembre 2007

Les générations multiprocesseurs permettent de générer simultanément plusieurs projets sur les ordinateurs équipés de plusieurs processeurs. Par exemple, si votre ordinateur possède deux processeurs, cette fonctionnalité permet de générer simultanément deux projets.

Pour optimiser le processus de génération, Visual Studio définit automatiquement le nombre maximal de générations simultanées comme étant égal au nombre de processeurs de l'ordinateur. Vous pouvez modifier ce paramètre en modifiant la valeur de la propriété nombre maximal de générations de projets en parallèle dans la page de propriétés Générer et exécuter de la boîte de dialogue Options. Pour plus d'informations, consultez Comment : définir le nombre de générations simultanées pour les générations multiprocesseurs.

Exécution de générations multiprocesseurs

Vous pouvez exécuter des générations multiprocesseurs à partir de l'environnement IDE ou de la ligne de commande. Pour effectuer une génération à partir de la ligne de commande, utilisez VCBUILD ou DEVENV. Pour les tâches qui illustrent ces concepts, consultez :

Sortie de génération multiprocesseur

Lorsque vous exécutez des générations multiprocesseurs, le système de projet attribue un nombre à chaque configuration de projet incluse dans la génération, suivi d'un crochet droit. Cette invite précède chaque message d'état de chaque étape de la génération.

L'exemple de sortie de génération suivant est le résultat d'une génération multiprocesseur :

1>------ Build started: Project: ConsoleApp2, Configuration: Debug Win32 ------
2>------ Build started: Project: ConsoleApp1, Configuration: Debug Win32 ------
1>Compiling...
2>Compiling...
1>stdafx.cpp
2>stdafx.cpp
2>Compiling...
1>Compiling...
2>AssemblyInfo.cpp
1>AssemblyInfo.cpp
1>ConsoleApp2.cpp
2>ConsoleApp1.cpp
2>Generating Code...
1>Generating Code...
1>Compiling resources...
2>Compiling resources...
2>Linking...
1>Linking...
2>Build log was saved at "file://d:\Documents and Settings\username\My Documents\Visual Studio\Projects\Demo\ConsoleApp1\Debug\BuildLog.htm"
2>ConsoleApp1 - 0 error(s), 0 warning(s)
2>
1>Build log was saved at "file://d:\Documents and Settings\username\My Documents\Visual Studio\Projects\Demo\ConsoleApp2\Debug\BuildLog.htm"
1>ConsoleApp2 - 0 error(s), 0 warning(s)
1>
---------------------- Done ----------------------

    Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped

La sortie de la génération multiprocesseur montre que les étapes de génération de plusieurs projets peuvent être générées simultanément. Ce comportement contraste avec celui des générations non-multiprocesseurs, qui ne démarrent le processus de génération d'un projet que lorsque la génération de projet en cours est terminée.

L'exemple de sortie de génération suivant est le résultat d'une génération non-multiprocesseur :

------ Build started: Project: ConsoleApp1, Configuration: Debug Win32 ------
Compiling...
stdafx.cpp
Compiling...
AssemblyInfo.cpp
ConsoleApp1.cpp
Generating Code...
Compiling resources...
Linking...
Build log was saved at "file://d:\Documents and Settings\username\My Documents\Visual Studio\Projects\Demo\ConsoleApp1\Debug\BuildLog.htm"
ConsoleApp1 - 0 error(s), 0 warning(s)

------ Build started: Project: ConsoleApp2, Configuration: Debug Win32 ------
Compiling...
stdafx.cpp
Compiling...
AssemblyInfo.cpp
ConsoleApp2.cpp
Generating Code...
Compiling resources...
Linking...
Build log was saved at "file://d:\Documents and Settings\username\My Documents\Visual Studio\Projects\Demo\ConsoleApp2\Debug\BuildLog.htm"
ConsoleApp2 - 0 error(s), 0 warning(s)

---------------------- Done ----------------------

    Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped

Voir aussi

Référence

Comment puis-je accélérer le processus de génération ?