I made a tool to show where the compiler is spending time in a nice graphical way. It works by parsing the msvc output log & sending the result to wiztree for visualization.
A side effect of using a disk usage tool for that is that times are in MB instead of seconds (1B = 1 micro second), so don’t be confused by that.
This is useful if you want to:
- Clean up your includes
- Find which functions takes time to compile
- Find which symbols are included in which files
- Speed up your compilation!
Using it I went from 240s to 170s for a full recompile of my plugin in debug mode
Source: GitHub - Phyronnaz/UECompileTimesVisualizer: Debug compile times in Unreal Engine & MSVC projects
Includes
See which headers are included by your files, and how long they take to compile. Surprisingly the file itself is often a really small portion of the total compile time. Can help you decide if it’s worth moving the functions definitions to a cpp.
Classes
See which classes are compiled in your files, and how long it took. Here too the compiler is probably spending most of its time compiling classes from included headers.
Functions
See which functions are compiled in your files, and how long it took. Can help determining which function to put between PRAGMA_DISABLE_OPTIMIZATION / PRAGMA_ENABLE_OPTIMIZATION