Membangun beberapa proyek secara paralel dengan MSBuild
Anda dapat menggunakan MSBuild untuk membangun beberapa proyek lebih cepat dengan menjalankannya secara paralel. Untuk menjalankan build secara paralel, Anda menggunakan pengaturan berikut pada komputer multi-core atau beberapa prosesor:
Sakelar
-maxcpucount
pada prompt perintah.Parameter tugas BuildInParallel pada tugas MSBuild.
Catatan
Sakelar -verbosity (-v) di baris perintah juga dapat memengaruhi performa build. Performa build Anda mungkin menurun jika verbositas informasi log build Anda diatur ke terperinci atau diagnostik, yang digunakan untuk pemecahan masalah. Untuk informasi selengkapnya, lihat Mendapatkan log build dan Referensi Baris perintah.
-Saklar maxcpucount
Jika Anda menggunakan sakelar -maxcpucount
, atau -m
singkatnya, MSBuild dapat membuat jumlah proses MSBuild.exe yang ditentukan yang mungkin dijalankan secara paralel. Proses ini juga dikenal sebagai "proses pekerja." Setiap proses pekerja menggunakan inti atau prosesor terpisah, jika ada yang tersedia, untuk membangun proyek pada saat yang sama dengan prosesor lain yang tersedia mungkin membangun proyek lain. Misalnya, mengatur sakelar ini ke nilai "4" menyebabkan MSBuild membuat empat proses pekerja untuk membangun proyek.
Jika Anda menyertakan sakelar -maxcpucount
tanpa menentukan nilai, MSBuild akan menggunakan hingga jumlah prosesor di komputer.
Untuk informasi selengkapnya tentang sakelar ini, yang diperkenalkan di MSBuild 3.5, lihat Referensi baris perintah.
Contoh berikut menginstruksikan MSBuild untuk menggunakan tiga proses pekerja. Jika Anda menggunakan konfigurasi ini, MSBuild dapat membangun tiga proyek secara bersamaan.
msbuild.exe myproj.proj -maxcpucount:3
Parameter tugas BuildInParallel
BuildInParallel
adalah parameter boolean opsional pada tugas MSBuild. Ketika BuildInParallel
diatur ke true
(nilai defaultnya adalah true
), beberapa proses pekerja dihasilkan untuk membangun proyek sebanyak mungkin pada saat yang sama. Agar ini berfungsi dengan benar, sakelar -maxcpucount
harus diatur ke nilai yang lebih besar dari 1.
Membangun secara paralel hanya berfungsi untuk satu pemanggilan tugas MSBuild, jadi jika Anda memanggil batching tugas, paralelisme terbatas pada setiap batch. Lihat Batching MSBuild.
Contoh berikut menunjukkan cara membangun target dalam file proyek dengan beberapa nilai properti yang berbeda secara paralel dengan menggunakan BuildInParallel
parameter .
Berikut adalah file do_it.proj
proyek dengan target yang hanya mencetak pesan yang berbeda untuk masing-masing SourceValue
:
<Project>
<Target Name="DoIt">
<Message Text="For this invocation SourceValue='$(SourceValue)'" Importance="High" />
</Target>
</Project>
Proyek berikut membangun target DoIt
tertentu secara do_it.proj
paralel, menggunakan daftar item dan AdditionalProperties
metadata untuk menentukan nilai properti SourceValue
yang berbeda.
<Project>
<ItemGroup>
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test1" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test2" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test3" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test4" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(_Project)" Targets="DoIt" BuildInParallel="true" />
</Target>
</Project>