Download

Slower build times in 4.8?

I have much higher build times in 4.8 than in 4.7. For example compiling only a single .cpp file in 4.7 takes around 7 seconds, in 4.8 it takes 18 seconds.

My build file looks like this


public class Arena : ModuleRules
{
	public Arena(TargetInfo Target)
	{
        MinFilesUsingPrecompiledHeaderOverride = 1;
        bFasterWithoutUnity = true;
		PublicDependencyModuleNames.AddRange(new string] { "Core", "CoreUObject", "Engine", "InputCore","AIModule" });
	}
}

The following build settings have absoluty no effect anymore


        
MinFilesUsingPrecompiledHeaderOverride = 1;
bFasterWithoutUnity = true;


Test:

I created the Fps c++ template in 4.7 and 4.8 I did an initial compile and then I changed one line in XXXCharacter.cpp

Here are my results:

In 4.7:


1>------ Build started: Project: FPS47, Configuration: Development_Editor x64 ------
2>------ Skipped Build: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>Project not selected to build for this solution configuration 
1>  Performing 2 actions (4 in parallel)
1>  FPS47Character.cpp
1>  [2/2] Link UE4Editor-FPS47.dll
1>     Creating library E:\unreal\FPS47\Intermediate\Build\Win64\FPS47Editor\Development\UE4Editor-FPS47.lib and object E:\unreal\FPS47\Intermediate\Build\Win64\FPS47Editor\Development\UE4Editor-FPS47.exp
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>  Cumulative action seconds (4 processors): 0.00 building projects, 0.89 compiling, 0.00 creating app bundles, 0.00 generating debug info, 0.39 linking, 0.00 other
1>  UBT execution time: 4.54 seconds
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

In 4.8:



1>------ Build started: Project: FPS48, Configuration: Development_Editor x64 ------
2>------ Skipped Build: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>Project not selected to build for this solution configuration 
1>  Compiling game modules for hot reload
1>  Parsing headers for FPS48Editor
1>  Reflection code generated for FPS48Editor
1>  Performing 2 actions (4 in parallel)
1>  FPS48Character.cpp
1>  [2/2] Link UE4Editor-FPS48-8001.dll
1>     Creating library E:\unreal\FPS48\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-FPS48-8001.lib and object E:\unreal\FPS48\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-FPS48-8001.exp
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>  Total build time: 17.72 seconds
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

Can anyone confirm this?

I am assuming that I am the only one affected by this because no one has replied yet? Does anyone have an idea what could cause this? It seems that the majority of the time is spent in UHT(parsing, generating). Is there a way to configure UHT?

I also compiled 4.8.1 myself and tested it again with slightly worse results.



1>------ Build started: Project: FPS48Source, Configuration: Development_Editor x64 ------
1>  Building UnrealHeaderTool...
1>  Target is up to date.
1>  Parsing headers for FPS48SourceEditor
1>  Reflection code generated for FPS48SourceEditor
1>  Performing 2 actions (4 in parallel)
1>  FPS48SourceCharacter.cpp
1>  [2/2] Link UE4Editor-FPS48Source.dll
1>     Creating library E:\unreal\FPS48Source\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-FPS48Source.lib and object E:\unreal\FPS48Source\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-FPS48Source.exp
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>  Total build time: 31.71 seconds
========== Build: 1 succeeded, 0 failed, 2 up-to-date, 0 skipped ==========

I wish I hadn’t upgraded to 4.8 so quickly and switching back to 4.7 would require to change some code.

I have the same feeling but I have no time to dig into it.
For me the preparation of the compilation is clearly longer than 4.7

If I get more time to track down this, I will update this thread.

My feeling is the same.
4.8 has longer compilation time than 4.7.

4.7 has the fastest compilation time. It is faster than 4.8 and any its previous versions.

Hi all,

UHT shouldn’t be being re-run just from a change to a .cpp file, because it only operates on header files. Can you confirm that this is what you are seeing?

UBT’s makefile support can result in much better iteration times, but it was disabled in 4.8 because it wasn’t quite fit for public release. I don’t think it was enabled in 4.7, however. In any case, if you are brave enough to try it, and you have source, you can try enabling it in BuildConfiguration.cs, and changing this line to true:


bUseUBTMakefiles = false;// !Utils.IsRunningOnMono;	// @todo ubtmake: Needs support for Mac

DISCLAIMER: if you end up getting unexplainable build errors after using it for a while, you will likely need to rebuild UBT to refresh the makefile system. You will also need to rebuild UBT every time you add or remove files to your project.

(things like this is why it wasn’t deemed fit for public release)

Steve

Yes I have made extensive tests, UHT is always rerun after changing a .cpp file. I tested it with 4.8.1 binary release and I built 4.8.1 myself. Switching to 4.7.6 fixes the compile times again and UHT is not rerun after changing a single .cpp.

If that is not a common problem, any ideas what could cause UHT to be rerun for a change in a single .cpp file?

I can confirm this.

Compiling in 4.8.1 takes more time compared to 4.7. And UHT always runs.

Im running 4.8. I can confirm that compilation time is longer (at least from what I can remember, around 27 seconds for a medium sized project). But UHT doesn’t run every time.

You can open your Build.cs file and add the following code:


 
   public ProjectName(TargetInfo Target) 
    { 
            MinFilesUsingPrecompiledHeaderOverride = 1 ;
     bFasterWithoutUnity = true;
     ...
 

This will turn off combining of source files, and also tells Unreal Build Tool to always create a precompiled header, which will yield very fast iteration times.

On my side I already have this configuration and clearly it’s slower.

I will check for the UHT things tonight but as it was just a “feeling” I didn’t post anything, but I’m glad that I’m not alone so Epic might track down the purpose of this slowness.

Thanks

We haven’t seen these effects here. If possible, can anyone please replicate this behaviour in a brand new project/template and list the repro steps here? As different people seem to be seeing different performance concerns, I’d like to establish if it’s something fundamental, project-specific or something local to those seeing the problem.

Also, if you could enable performance info stats for your output, that’ll give more information about which parts have actually got slower between 4.7 and 4.8. You can do this by adding <bPrintPerformanceInfo>true</bPrintPerformanceInfo> to the BuildConfiguration section inside UBT’s configuration file, found here: UE4\Engine\Saved\UnrealBuildTool\BuildConfiguration.xml

Steve

First Person template 4.8.1 binary release. Added a new line to XXCharacter.cpp after doing a full build.


1>------ Build started: Project: FPS48Source, Configuration: Development_Editor x64 ------
2>------ Skipped Build: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>Project not selected to build for this solution configuration 
1>  Telemetry initialization took 0.0050003s
1>  Basic UBT initialization took 0.1530087s
1>  DeleteJunk took 0s
1>  RunUBT initialization took 0.0050003s
1>  Target descriptors took 0.0090005s
1>  CreateTarget for FPS48SourceEditor took 0.490028s
1>  Target init took 0.4970284s
1>  Loading existing IncludeFileCache: E:\unreal\FPS48Source\Intermediate\Build\Win64\FPS48SourceEditor\DependencyCache.bin
1>  Loading IncludeFileCache took 1.0730614s
1>  UObject discovery time: 0.5180296s
1>  Parsing headers for FPS48SourceEditor
1>  Reflection code generated for FPS48SourceEditor
1>  UnrealHeaderTool took 11.571
1>     Cache miss: PS4\PS4PlatformCompilerPreSetup.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatformCompilerPreSetup.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stddef.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Platform.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatform.h found after 210 attempts: NOT FOUND!
1>     Cache miss: new found after 210 attempts: NOT FOUND!
1>     Cache miss: wchar.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stdlib.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stdio.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stdarg.h found after 210 attempts: NOT FOUND!
1>     Cache miss: math.h found after 210 attempts: NOT FOUND!
1>     Cache miss: float.h found after 210 attempts: NOT FOUND!
1>     Cache miss: string.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Includes.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatformIncludes.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys	ime.h found after 210 attempts: NOT FOUND!
1>     Cache miss: pthread.h found after 210 attempts: NOT FOUND!
1>     Cache miss: errno.h found after 210 attempts: NOT FOUND!
1>     Cache miss: intrin.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stdint.h found after 210 attempts: NOT FOUND!
1>     Cache miss: tchar.h found after 210 attempts: NOT FOUND!
1>     Cache miss: intsafe.h found after 210 attempts: NOT FOUND!
1>     Cache miss: strsafe.h found after 210 attempts: NOT FOUND!
1>     Cache miss: CodeAnalysis\SourceAnnotations.h found after 210 attempts: NOT FOUND!
1>     Cache miss: CodeAnalysis\Warnings.h found after 210 attempts: NOT FOUND!
1>     Cache miss: windows.h found after 210 attempts: NOT FOUND!
1>     Cache miss: ctype.h found after 210 attempts: NOT FOUND!
1>     Cache miss: wctype.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Misc.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneMisc.h found after 210 attempts: NOT FOUND!
1>     Cache miss: Carbon\Carbon.h found after 210 attempts: NOT FOUND!
1>     Cache miss: CoreServices\CoreServices.h found after 210 attempts: NOT FOUND!
1>     Cache miss: CoreFoundation\CoreFoundation.h found after 210 attempts: NOT FOUND!
1>     Cache miss: alloca.h found after 210 attempts: NOT FOUND!
1>     Cache miss: limits.h found after 210 attempts: NOT FOUND!
1>     Cache miss: mach\mach_time.h found after 210 attempts: NOT FOUND!
1>     Cache miss: unistd.h found after 210 attempts: NOT FOUND!
1>     Cache miss: libkern\OSAtomic.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys	ypes.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys\stat.h found after 210 attempts: NOT FOUND!
1>     Cache miss: pwd.h found after 210 attempts: NOT FOUND!
1>     Cache miss: fcntl.h found after 210 attempts: NOT FOUND!
1>     Cache miss: dirent.h found after 210 attempts: NOT FOUND!
1>     Cache miss: dlfcn.h found after 210 attempts: NOT FOUND!
1>     Cache miss: copyfile.h found after 210 attempts: NOT FOUND!
1>     Cache miss: utime.h found after 210 attempts: NOT FOUND!
1>     Cache miss: mach\mach_host.h found after 210 attempts: NOT FOUND!
1>     Cache miss: mach	ask.h found after 210 attempts: NOT FOUND!
1>     Cache miss: execinfo.h found after 210 attempts: NOT FOUND!
1>     Cache miss: signal.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys\sysctl.h found after 210 attempts: NOT FOUND!
1>     Cache miss: malloc\malloc.h found after 210 attempts: NOT FOUND!
1>     Cache miss: xmmintrin.h found after 210 attempts: NOT FOUND!
1>     Cache miss: mach\mach.h found after 210 attempts: NOT FOUND!
1>     Cache miss: arm_neon.h found after 210 attempts: NOT FOUND!
1>     Cache miss: wrl.h found after 210 attempts: NOT FOUND!
1>     Cache miss: emscripten.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys\utsname.h found after 210 attempts: NOT FOUND!
1>     Cache miss: libgen.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneSystemIncludes.h found after 210 attempts: NOT FOUND!
1>     Cache miss: jni.h found after 210 attempts: NOT FOUND!
1>     Cache miss: time.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys	imeb.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys\syscall.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Math.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneMath.h found after 210 attempts: NOT FOUND!
1>     Cache miss: DirectXMath.h found after 210 attempts: NOT FOUND!
1>     Cache miss: DirectXPackedVector.h found after 210 attempts: NOT FOUND!
1>     Cache miss: emmintrin.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4String.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneString.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Properties.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneProperties.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Process.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneProcess.h found after 210 attempts: NOT FOUND!
1>     Cache miss: BoneAtomVectorized.h found after 210 attempts: NOT FOUND!
1>     Cache miss: Animation\AnimInstance.h found after 34 attempts: D:\Epic Games\4.8\Engine\Source\Runtime\Engine\Classes\Animation\AnimInstance.h
1>     Cache miss: GameFramework\InputSettings.h found after 34 attempts: D:\Epic Games\4.8\Engine\Source\Runtime\Engine\Classes\GameFramework\InputSettings.h
1>     Cache miss: PS4\PS4PlatformCompilerPreSetup.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatformCompilerPreSetup.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stddef.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Platform.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatform.h found after 210 attempts: NOT FOUND!
1>     Cache miss: new found after 210 attempts: NOT FOUND!
1>     Cache miss: wchar.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stdlib.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stdio.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stdarg.h found after 210 attempts: NOT FOUND!
1>     Cache miss: math.h found after 210 attempts: NOT FOUND!
1>     Cache miss: float.h found after 210 attempts: NOT FOUND!
1>     Cache miss: string.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Includes.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatformIncludes.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys	ime.h found after 210 attempts: NOT FOUND!
1>     Cache miss: pthread.h found after 210 attempts: NOT FOUND!
1>     Cache miss: errno.h found after 210 attempts: NOT FOUND!
1>     Cache miss: intrin.h found after 210 attempts: NOT FOUND!
1>     Cache miss: stdint.h found after 210 attempts: NOT FOUND!
1>     Cache miss: tchar.h found after 210 attempts: NOT FOUND!
1>     Cache miss: intsafe.h found after 210 attempts: NOT FOUND!
1>     Cache miss: strsafe.h found after 210 attempts: NOT FOUND!
1>     Cache miss: CodeAnalysis\SourceAnnotations.h found after 210 attempts: NOT FOUND!
1>     Cache miss: CodeAnalysis\Warnings.h found after 210 attempts: NOT FOUND!
1>     Cache miss: windows.h found after 210 attempts: NOT FOUND!
1>     Cache miss: ctype.h found after 210 attempts: NOT FOUND!
1>     Cache miss: wctype.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Misc.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneMisc.h found after 210 attempts: NOT FOUND!
1>     Cache miss: Carbon\Carbon.h found after 210 attempts: NOT FOUND!
1>     Cache miss: CoreServices\CoreServices.h found after 210 attempts: NOT FOUND!
1>     Cache miss: CoreFoundation\CoreFoundation.h found after 210 attempts: NOT FOUND!
1>     Cache miss: alloca.h found after 210 attempts: NOT FOUND!
1>     Cache miss: limits.h found after 210 attempts: NOT FOUND!
1>     Cache miss: mach\mach_time.h found after 210 attempts: NOT FOUND!
1>     Cache miss: unistd.h found after 210 attempts: NOT FOUND!
1>     Cache miss: libkern\OSAtomic.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys	ypes.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys\stat.h found after 210 attempts: NOT FOUND!
1>     Cache miss: pwd.h found after 210 attempts: NOT FOUND!
1>     Cache miss: fcntl.h found after 210 attempts: NOT FOUND!
1>     Cache miss: dirent.h found after 210 attempts: NOT FOUND!
1>     Cache miss: dlfcn.h found after 210 attempts: NOT FOUND!
1>     Cache miss: copyfile.h found after 210 attempts: NOT FOUND!
1>     Cache miss: utime.h found after 210 attempts: NOT FOUND!
1>     Cache miss: mach\mach_host.h found after 210 attempts: NOT FOUND!
1>     Cache miss: mach	ask.h found after 210 attempts: NOT FOUND!
1>     Cache miss: execinfo.h found after 210 attempts: NOT FOUND!
1>     Cache miss: signal.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys\sysctl.h found after 210 attempts: NOT FOUND!
1>     Cache miss: malloc\malloc.h found after 210 attempts: NOT FOUND!
1>     Cache miss: xmmintrin.h found after 210 attempts: NOT FOUND!
1>     Cache miss: mach\mach.h found after 210 attempts: NOT FOUND!
1>     Cache miss: arm_neon.h found after 210 attempts: NOT FOUND!
1>     Cache miss: wrl.h found after 210 attempts: NOT FOUND!
1>     Cache miss: emscripten.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys\utsname.h found after 210 attempts: NOT FOUND!
1>     Cache miss: libgen.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneSystemIncludes.h found after 210 attempts: NOT FOUND!
1>     Cache miss: jni.h found after 210 attempts: NOT FOUND!
1>     Cache miss: time.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys	imeb.h found after 210 attempts: NOT FOUND!
1>     Cache miss: sys\syscall.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Math.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneMath.h found after 210 attempts: NOT FOUND!
1>     Cache miss: DirectXMath.h found after 210 attempts: NOT FOUND!
1>     Cache miss: DirectXPackedVector.h found after 210 attempts: NOT FOUND!
1>     Cache miss: emmintrin.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4String.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneString.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Properties.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneProperties.h found after 210 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Process.h found after 210 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneProcess.h found after 210 attempts: NOT FOUND!
1>     Cache miss: BoneAtomVectorized.h found after 210 attempts: NOT FOUND!
1>  Deleting stale hot reload DLLs took 0.0030001s
1>  Checking actions for FPS48SourceEditor took 0.0100005s
1>  Checking outdatedness took 0.0230013s
1>  Performing 2 actions (4 in parallel)
1>  FPS48SourceCharacter.cpp
1>  [2/2] Link UE4Editor-FPS48Source.dll
1>     Creating library E:\unreal\FPS48Source\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-FPS48Source.lib and object E:\unreal\FPS48Source\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-FPS48Source.exp
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>  Saving IncludeFileCache took 0.3320189s
1>  Total build time: 19.25 seconds
1>  GetIncludes time: 4.46225449999999s (0 includes)
1>  DirectIncludes cache miss time: 0.0280016s (2 misses)
1>  FindIncludePaths calls: 362 (31992 searches)
1>  PCH gen time: 0.838048s
1>  PCH cache time: 0.0420024s
1>  Deep C++ include scan time: 0s
1>  Include Resolves: 3412 (361 misses, 10.58%)
1>  Total FileItems: 6626 (24 missing)
1>  Execution time: 19.2551013s
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

First Person template 4.7.6 binary release. Added a new line to XXCharacter.cpp after doing a full build.


1>------ Build started: Project: FPS47, Configuration: Development_Editor x64 ------
2>------ Skipped Build: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>Project not selected to build for this solution configuration 
1>  Telemetry initialization took 0.0050003s
1>  Basic UBT initialization took 0.1380079s
1>  DeleteJunk took 0s
1>  RunUBT initialization took 0.0110006s
1>  Target descriptors took 0.0080005s
1>  CreateTarget for FPS47Editor took 0.2690153s
1>  Target init took 0.2770158s
1>  Loading existing IncludeFileCache: E:\unreal\FPS47\Intermediate\Build\Win64\FPS47Editor\DependencyCache.bin
1>  Loading IncludeFileCache took 0.0760044s
1>  UObject discovery time: 0.1530088s
1>     Cache miss: PS4\PS4PlatformCompilerPreSetup.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatformCompilerPreSetup.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Mac\MacPlatformCompilerPreSetup.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTPlatformCompilerPreSetup.h found after 195 attempts: NOT FOUND!
1>     Cache miss: stddef.h found after 195 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Platform.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatform.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Mac\MacPlatform.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTARMPlatform.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTPlatform.h found after 195 attempts: NOT FOUND!
1>     Cache miss: new found after 195 attempts: NOT FOUND!
1>     Cache miss: wchar.h found after 195 attempts: NOT FOUND!
1>     Cache miss: stdlib.h found after 195 attempts: NOT FOUND!
1>     Cache miss: stdio.h found after 195 attempts: NOT FOUND!
1>     Cache miss: stdarg.h found after 195 attempts: NOT FOUND!
1>     Cache miss: math.h found after 195 attempts: NOT FOUND!
1>     Cache miss: float.h found after 195 attempts: NOT FOUND!
1>     Cache miss: string.h found after 195 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Includes.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOnePlatformIncludes.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Mac\MacPlatformIncludes.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTPlatformIncludes.h found after 195 attempts: NOT FOUND!
1>     Cache miss: sys	ime.h found after 195 attempts: NOT FOUND!
1>     Cache miss: pthread.h found after 195 attempts: NOT FOUND!
1>     Cache miss: errno.h found after 195 attempts: NOT FOUND!
1>     Cache miss: intrin.h found after 195 attempts: NOT FOUND!
1>     Cache miss: stdint.h found after 195 attempts: NOT FOUND!
1>     Cache miss: tchar.h found after 195 attempts: NOT FOUND!
1>     Cache miss: intsafe.h found after 195 attempts: NOT FOUND!
1>     Cache miss: strsafe.h found after 195 attempts: NOT FOUND!
1>     Cache miss: CodeAnalysis\SourceAnnotations.h found after 195 attempts: NOT FOUND!
1>     Cache miss: CodeAnalysis\Warnings.h found after 195 attempts: NOT FOUND!
1>     Cache miss: windows.h found after 195 attempts: NOT FOUND!
1>     Cache miss: ctype.h found after 195 attempts: NOT FOUND!
1>     Cache miss: wctype.h found after 195 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Misc.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneMisc.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Mac\MacPlatformMisc.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTMisc.h found after 195 attempts: NOT FOUND!
1>     Cache miss: CoreFoundation\CoreFoundation.h found after 195 attempts: NOT FOUND!
1>     Cache miss: alloca.h found after 195 attempts: NOT FOUND!
1>     Cache miss: limits.h found after 195 attempts: NOT FOUND!
1>     Cache miss: mach\mach_time.h found after 195 attempts: NOT FOUND!
1>     Cache miss: unistd.h found after 195 attempts: NOT FOUND!
1>     Cache miss: libkern\OSAtomic.h found after 195 attempts: NOT FOUND!
1>     Cache miss: sys	ypes.h found after 195 attempts: NOT FOUND!
1>     Cache miss: sys\stat.h found after 195 attempts: NOT FOUND!
1>     Cache miss: pwd.h found after 195 attempts: NOT FOUND!
1>     Cache miss: fcntl.h found after 195 attempts: NOT FOUND!
1>     Cache miss: dirent.h found after 195 attempts: NOT FOUND!
1>     Cache miss: dlfcn.h found after 195 attempts: NOT FOUND!
1>     Cache miss: copyfile.h found after 195 attempts: NOT FOUND!
1>     Cache miss: utime.h found after 195 attempts: NOT FOUND!
1>     Cache miss: mach\mach.h found after 195 attempts: NOT FOUND!
1>     Cache miss: mach\mach_host.h found after 195 attempts: NOT FOUND!
1>     Cache miss: execinfo.h found after 195 attempts: NOT FOUND!
1>     Cache miss: signal.h found after 195 attempts: NOT FOUND!
1>     Cache miss: sys\sysctl.h found after 195 attempts: NOT FOUND!
1>     Cache miss: xmmintrin.h found after 195 attempts: NOT FOUND!
1>     Cache miss: arm_neon.h found after 195 attempts: NOT FOUND!
1>     Cache miss: sys\utsname.h found after 195 attempts: NOT FOUND!
1>     Cache miss: libgen.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneSystemIncludes.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Mac\MacSystemIncludes.h found after 195 attempts: NOT FOUND!
1>     Cache miss: jni.h found after 195 attempts: NOT FOUND!
1>     Cache miss: time.h found after 195 attempts: NOT FOUND!
1>     Cache miss: sys	imeb.h found after 195 attempts: NOT FOUND!
1>     Cache miss: emscripten.h found after 195 attempts: NOT FOUND!
1>     Cache miss: sys\syscall.h found after 195 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Math.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneMath.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Mac\MacPlatformMath.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTMath.h found after 195 attempts: NOT FOUND!
1>     Cache miss: DirectXMath.h found after 195 attempts: NOT FOUND!
1>     Cache miss: DirectXPackedVector.h found after 195 attempts: NOT FOUND!
1>     Cache miss: emmintrin.h found after 195 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4String.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneString.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTString.h found after 195 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Properties.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneProperties.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Mac\MacPlatformProperties.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTProperties.h found after 195 attempts: NOT FOUND!
1>     Cache miss: PS4\PS4Process.h found after 195 attempts: NOT FOUND!
1>     Cache miss: XboxOne\XboxOneProcess.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Mac\MacPlatformProcess.h found after 195 attempts: NOT FOUND!
1>     Cache miss: WinRT\WinRTProcess.h found after 195 attempts: NOT FOUND!
1>     Cache miss: BoneAtomVectorized.h found after 195 attempts: NOT FOUND!
1>     Cache miss: Animation\AnimInstance.h found after 35 attempts: D:\Epic Games\4.7\Engine\Source\Runtime\Engine\Classes\Animation\AnimInstance.h
1>     Cache miss: GameFramework\InputSettings.h found after 35 attempts: D:\Epic Games\4.7\Engine\Source\Runtime\Engine\Classes\GameFramework\InputSettings.h
1>     Cache miss: windows.h found after 195 attempts: NOT FOUND!
1>  Deleting stale hot reload DLLs took 0.0030002s
1>  Checking actions for FPS47Editor took 0.0110007s
1>  Checking outdatedness took 0.0240014s
1>  Performing 2 actions (4 in parallel)
1>  FPS47Character.cpp
1>  [2/2] Link UE4Editor-FPS47.dll
1>     Creating library E:\unreal\FPS47\Intermediate\Build\Win64\FPS47Editor\Development\UE4Editor-FPS47.lib and object E:\unreal\FPS47\Intermediate\Build\Win64\FPS47Editor\Development\UE4Editor-FPS47.exp
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>  Saving IncludeFileCache took 0.0320019s
1>  Cumulative action seconds (4 processors): 0.00 building projects, 0.86 compiling, 0.00 creating app bundles, 0.00 generating debug info, 0.38 linking, 0.00 other
1>  UBT execution time: 4.58 seconds
1>  GetIncludes time: 2.0281166s (0 includes)
1>  DirectIncludes cache miss time: 0.0290017s (2 misses)
1>  FindIncludePaths calls: 164 (17429 searches)
1>  PCH gen time: 0.6360364s
1>  PCH cache time: 0.0440026s
1>  Deep C++ include scan time: 0s
1>  Include Resolves: 1717 (163 misses, 9.49%)
1>  Total FileItems: 2330 (24 missing)
1>  Execution time: 4.5832621s
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

If you need more information, please let me know.

Hey guys,

I’ve discovered that some changes which were in 4.7 did not get integrated back into our main branch, which meant that they were effectively missing from the 4.8 release. I’ve checked them in here. Some changes have been made since then, but I think they should be easily merged.

https://github.com/EpicGames/UnrealEngine/commit/8f97ba4709793a7af00b1dd15349e33f276c1575

Sorry for the trouble.

Steve

Apart from what Robb said you may want to use a SSD and set ProcessorCountMultiplier in your build config to 2 in case you have hyper-threading.

@Steve,

Great that you found the root cause.
Can we expect an update in a 4.8.2 version?
Or maybe a UBT.Exe patch from Epic published somewhere? :smiley:

Thanks,

Yeah I think this is a big issue. I use an SSD and my entire project and even the engine is on my SSD. When I change say even a single number inside of a cpp file, I get compile times of 20s+. For just changing a ‘1’ to a ‘2’ inside of my class:


1>------ Build started: Project: TestingAI, Configuration: Development_Editor x64 ------
1>  Parsing headers for TestingAIEditor
1>  Reflection code generated for TestingAIEditor
1>  Performing 2 actions (2 in parallel)
1>  TestingAIProjectile.cpp
1>  [2/2] Link UE4Editor-TestingAI.dll
1>     Creating library C:\Users\User\Documents\Unreal Projects\TestingAI\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-TestingAI.lib and object C:\Users\User\Documents\Unreal Projects\TestingAI\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-TestingAI.exp
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>  Total build time: 21.16 seconds
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

On the other hand, I have noticed my compile times are faster than when I first created this project. I was getting compile times of 40s-70s a week ago, I’m not sure what I changed but the compile times did decrease. Not to say the new compile times are great. I would expect 5 seconds at max for changing a number.

It seems it has not merged into 4.8 branch yet. It has just merged into master branch now.

I look at some commits histories in 4.7 branch. It is only a branch with many changes despite integrated from master.
I guess there still exist some changes were not merged into master branch.

Other branches only contain integrated form master.