IncrediBuild: Cómo acelerar la construcción y el análisis de su proyecto

"¿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:





Algo con muchos errores en este gráfico, ¿verdad?
- , ?

. , - - . 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 . , ( ), , , .





, , . , . , :





Lo ejecuté cinco veces y calculé el promedio de los lanzamientos (viste estos números en los gráficos) :)
( ) :)



All Articles