«Combien collecterez-vous de plus? - une phrase que chaque développeur a prononcée au moins une fois au milieu de la nuit. Oui, le montage peut être long et il n'y a pas moyen de s'en éloigner. Vous ne pouvez pas simplement prendre et paralléliser le tout, pas sur des misérables 8 à 12 cœurs, mais sur plus de 100 cœurs. Ou est-ce possible?

J'ai besoin de plus de cœurs!
, , . , - , . , , , – , build .
, . , . , , ...
" " - . , . , , . , :)
!
- , . , , , . , - .
, - . , : . , ...
?
, , , . Chromium Linux, - , - ... ( ?). , .
, - , "" Unreal Engine. ! , UE Open Source.
, : Unreal Tournament. , - **.

100+ !
, , IncrediBuild. , - IncrediBuild 20 . , , , distcc, , Windows.
, . :
Slack;
.
, , Slack... - 12 20. , , . 145 (+/- 10) :)
( ), . , .
, , Visual Studio. ... :)
, , ShaderCompileWorker UnrealLightmass. , . :

, ?

, 30 6! . , , . , .
?
IncrediBuild , . , , , PVS-Studio. .
, : . , ; , ... – :(
, - 145 :

:

**
, :

, ... , . , ... , .
PVS-Studio #2
- Unreal Engine, :

, , -StaticAnalyzer . , . , .
- . . , .
:
CLMonitor.exe monitor
. IncrediBuild, .
:
Total build time: 1710,84 seconds (Local executor: 1526,25 seconds)
, :
CLMonitor.exe saveDump -d dump.gz
, . , , , – .
:
CLMonitor.exe analyzeFromDump -l UE.plog -d dump.gz
, IncrediBuild. analyze.bat. profile.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Profile FormatVersion="1">
<Tools>
<Tool Filename="CLMonitor" AllowIntercept="true" />
<Tool Filename="cl" AllowRemote="true" />
<Tool Filename="PVS-Studio" AllowRemote="true" />
</Tools>
</Profile>
**
145- :
ibconsole /command=analyze.bat /profile=profile.xml
Build Monitor:

. , - - . Unreal Tournament .
PVS-Studio #3
, , . , :
....\Build.h(42): fatal error C1189: #error: Exactly one of [UE_BUILD_DEBUG \
UE_BUILD_DEVELOPMENT UE_BUILD_TEST UE_BUILD_SHIPPING] should be defined to be 1
? – , 1:
UE_BUILD_DEBUG;
UE_BUILD_DEVELOPMENT;
UE_BUILD_TEST;
UE_BUILD_SHIPPING.
, , - . , . - . , precompile header, . :
#ifdef PVS_STUDIO
#define _DEBUG
#define UE_BUILD_DEVELOPMENT 1
#define WITH_EDITOR 1
#define WITH_ENGINE 1
#define WITH_UNREAL_DEVELOPER_TOOLS 1
#define WITH_PLUGIN_SUPPORT 1
#define UE_BUILD_MINIMAL 1
#define IS_MONOLITHIC 1
#define IS_PROGRAM 1
#define PLATFORM_WINDOWS 1
#endif
build.h
. , PVS_STUDIO.
, :

, 15 – . , 2 . 15 . ...
?
, N N . , ( ), , , .
, , . , . , :
