我不想说明一个不完整的XY问题,所以这里是完整的情况:
X
我在Windows 7机器上运行Visual Studio中的构建,使用并行构建和并行编译。禁用其中任何一个都不是一种选择。
我的问题是偶尔会产生这么多cl.exe
(编译器)进程,导致整个机器变慢,UI无响应等。
该机器有12个有效核心(6瓦/超线程)。
ÿ
我解决这个问题的想法是限制cl
只有11或10个可用核心,这样它就无法使整个机器无响应。不幸的是,我无法找到办法。
我已经找到了通过对应用程序使用快捷方式(.lnk
)来设置应用程序关联的方法,但这在我的情况下不适用,因为它cl.exe
是由Visual Studio内部启动的,而不是由我直接启动的。
我也找到了设置已经运行的进程的亲和力的方法,但这对我来说也没用(如果没有别的,cl.exe
进程结束并在整个构建过程中产生,它们不是长时间运行的)。
我正在寻找一种方法来做Y部分,但是解决X问题的替代方法(由太多进程运行,停止和启动引起的无响应)也是受欢迎的解决方案。
你不能只降低并行版本的数量吗?msdn文章
—
PTwr 2016年
@PTwr不幸的是,没有。正如我所提到的,它是并行构建(MSDN所讨论的内容)和并行编译(
—
Angew 2016年
/MP
交换机)的组合。我无法摆脱任何一个,因为构建还涉及Fortran,它只有并行构建。
@PTwr这听起来像是对我的回答 - 基本上,我的问题是“如何设置永久的亲和力?” 这使得“使用这个免费工具”成为IMO的有效答案。
—
Angew 2016年
我宁愿先自己测试它,现在只是随机记忆回忆。
—
PTwr 2016年