"¿Cuánto más vas a recolectar?" - una frase que todos los desarrolladores dijeron al menos una vez en medio de la noche. Sí, el montaje puede ser largo y no hay forma de escapar. No puede simplemente tomar y paralelizar todo, no en algunos miserables 8-12 núcleos, sino de modo que más de 100. ¿O es posible?
¡Necesito más núcleos!
, , . , - , . , , , – , 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 . , ( ), , , .
, , . , . , :