UE 降低编译线程数 | Blurred code

UE 降低编译线程数

2023/11/03

LastMod:2023/11/03

Categories: UE

简单做个备忘。 与在公司不同,在家编译UE的时候通常会一边干其他事情一边等编译。 如果虚幻把所有线程都占满就没法干其他事情了(刷B站或者看其他代码都卡)。

编译CPP的线程控制

BuildConfiguration.xml可以控制UBT的一些行为,所以可以用来控制编译线程数。这个文件有几个不同目录,工程目录下的只会影响工程,而C:\Users\<User>AppData\Roaming\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml目录下的会影响全局。

在家里没有xge其实只需要设置LocalExecutor就够了。 稍微解释下:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">

<BuildConfiguration>
    <bAllowXGE>false</bAllowXGE>
</BuildConfiguration>

<ParallelExecutor>
    <ProcessorCountMultiplier>0.8</ProcessorCountMultiplier>
    <MaxProcessorCount>7</MaxProcessorCount>
</ParallelExecutor>

<LocalExecutor>
    <ProcessorCountMultiplier>0.8</ProcessorCountMultiplier>
    <MaxProcessorCount>7</MaxProcessorCount>
</LocalExecutor>

</Configuration>

编译shader的线程控制

这个需要去BaseEngine.ini去找。同样有好几个层级,工程目录下也有,我的文档下也可以找到。 比较关键的是

[DevOptions.Shaders]
...
NumUnusedShaderCompilingThreads=3
; Make sure the game has enough cores available to maintain reasonable performance
NumUnusedShaderCompilingThreadsDuringGame=4

把这两个数字调大一点,尤其是第一个。越大预留的线程越多,ShaderCompiler调度的线程就越少。