Generazioni multiprocessore
Aggiornamento: novembre 2007
Le generazioni multiprocessore consentono di generare più progetti simultaneamente sui computer dotati di più CPU. Se il computer in uso dispone di due CPU, ad esempio, grazie a questa funzionalità è possibile generare fino a due progetti contemporaneamente.
Per ottimizzare il processo di generazione, il numero massimo di generazioni simultanee viene automaticamente impostato da Visual Studio sul numero di CPU del computer. È possibile modificare questa impostazione modificando il valore della proprietà numero massimo di generazioni di progetto parallele nella pagina delle proprietà Genera ed esegui della finestra di dialogo Opzioni. Per ulteriori informazioni, vedere Procedura: impostare il numero di generazioni simultanee per generazioni multiprocessore.
Esecuzione di generazioni multiprocessore
È possibile eseguire generazioni multiprocessore dall'IDE o dalla riga di comando. Per eseguire la generazione dalla riga di comando, utilizzare VCBUILD o DEVENV. Per una dimostrazione di questi concetti, vedere le seguenti attività:
Output delle generazioni multiprocessore
Quando si eseguono generazioni multiprocessore, il sistema del progetto assegna un numero a ciascuna configurazione di progetto inclusa nella generazione, seguito da una parentesi angolare destra. Questo prompt precede ciascun messaggio di stato per ogni istruzione di generazione.
L'output di generazione di esempio riportato di seguito è il risultato di una generazione multiprocessore:
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
Nell'output della generazione multiprocessore viene illustrato che è possibile distribuire simultaneamente istruzioni di generazione per più progetti. Questo comportamento si differenzia dalle generazioni non multiprocessore, in cui non possono essere avviati processi di generazione finché non viene completato il processo di generazione per il progetto corrente.
L'output di generazione di esempio riportato di seguito è il risultato di una generazione non multiprocessore:
------ 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