Visual studio 2013 如何让其他XGSubmited任务与visual studio生成任务共享CPU?
我可以将IncredBuild用作visual studio扩展包,以使用许多CPU构建代码 我还可以使用xgconsole msbuild。。。指挥部 但是如果我想在vc构建的同时添加一些其他任务。所以我尝试了一些方法:Visual studio 2013 如何让其他XGSubmited任务与visual studio生成任务共享CPU?,visual-studio-2013,parallel-processing,build-process,incredibuild,Visual Studio 2013,Parallel Processing,Build Process,Incredibuild,我可以将IncredBuild用作visual studio扩展包,以使用许多CPU构建代码 我还可以使用xgconsole msbuild。。。指挥部 但是如果我想在vc构建的同时添加一些其他任务。所以我尝试了一些方法: 使用批处理config.bat: xgSubmit /command task1 xgSubmit /command task2 msbuild ***.sln /t:rebuild 然后使用命令 xgConsole/command=“config.bat”/profi
xgSubmit /command task1
xgSubmit /command task2
msbuild ***.sln /t:rebuild
<?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>
但问题是,tracker进程创建了一个cl进程,然后cl进程创建了许多其他cl进程。因此,我在xml配置文件中将cl设置为allowinetcept和AllowRemote。但是使用此xml配置,xgconsole无法将cl进程分派到其他CPU,只需报告一个错误即可
cl.exe
。在我自己的cl.exe
中,我检查父进程是否为tracker.exe
,然后启动clorigin.exe
,并将命令para传输给它,然后等待clorigin.exe
终止;如果父进程是cl.exe
,那么我启动clchild.exe
但这种方式也没有用。简单地说,你可以认为这是没有用的
所以我想也许我不应该通过StartProcess
API启动clorigin.exe
,它只是启动另一个进程;也许我应该在unix中作为execute
api来执行,当启动子进程时,在taskmanager中它只能看到父进程,这意味着只有父进程才能完成另一个exe的任务,但不能创建新的进程id
也许我的想法是错误的,但是如何让其他任务与visual studio编译任务共享并同时分派到多个CPU?使用IncredBuild visual studio插件(或BuildConsole命令)是使用IncredBuild执行解决方案的最简单和最优化(性能方面)的方法。如果您喜欢使用自定义概要文件执行构建,那么您的profile.xml应该如下所示(请注意,概要文件中不应提及跟踪器):
(作者使用的是难以置信的构建)