Saya dapat menggunakan incredibuild sebagai paket ekstensi visual studio untuk membuat kode saya menggunakan banyak CPU.
Saya juga bisa menggunakan perintah xgconsole msbuild ....
Tetapi jika saya ingin menambahkan beberapa tugas lain bersama dengan vc build secara bersamaan. Jadi saya mencobanya dengan beberapa cara:
Gunakan konfigurasi batch.bat:
xgSubmit /command task1 xgSubmit /command task2 msbuild ***.sln /t:rebuild
Kemudian gunakan perintah
xgConsole /command="config.bat" /profile=pro.xml
Pro.xml saya sebagai berikut:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Profile FormatVersion="1">
<Tools>
<Tool Filename="MSBuild" AllowIntercept="true" />
<Tool Filename="Tracker" AllowIntercept="true" />
<Tool Filename="CL" AllowIntercept="true" />
<Tool Filename="Tracker" AllowRemote="true" />
<Tool Filename="CL" AllowRemote="false" />
</Tools>
</Profile>
Namun masalahnya, proses pelacak membuat proses cl, kemudian proses cl membuat banyak proses cl lainnya. Jadi saya menetapkan cl sebagai AllowIntercept dan AllowRemote di file konfigurasi xml. Tetapi dengan konfigurasi xml ini, xgconsole tidak dapat mengirimkan proses cl ke CPU lain, cukup laporkan kesalahan.
- Jadi saya mencoba cara lain: Saya mengganti nama Visual Studio cl.exe menjadi clChild.exe, dan membuat cadangan yang lain, beri nama clorigin.exe.
Lalu saya mendesain cl.exe
saya sendiri. Di cl.exe
saya sendiri, saya memeriksa apakah proses induknya adalah tracker.exe
, Kemudian saya memulai clorigin.exe
, dan mentransfer para perintah ke sana, lalu menunggu clorigin.exe
berhenti; jika proses induknya cl.exe
, maka saya mulai clchild.exe
.
Namun cara ini juga tidak ada gunanya. Sederhananya, Anda mungkin menganggap itu tidak ada gunanya.
Jadi menurut saya mungkin sebaiknya saya tidak memulai clorigin.exe
oleh StartProcess
API, yang hanya memulai proses lain; mungkin saya harus melakukannya sebagai execute
api di unix, ketika memulai proses anak, di taskmanager hanya dapat melihat proses induk, yang berarti hanya proses induk untuk menyelesaikan tugas exe lain, tetapi tidak membuat id proses baru ?
Mungkin yang menurut saya salah, tetapi bagaimana cara membiarkan tugas lain dibagikan dan dikirim ke banyak CPU dengan tugas kompilasi visual studio pada saat yang bersamaan?