Link time metrics from the build process

Hey!

We’ve noticed a big regression in link time for developers over the last half year in our project when building the development editor build. We’re trying to get data to investigate when this regression occured, but just an overal build time on the build machine does not seem to be an accurate measurement for this due to iterative builds.

We’re wondering if it is possible to extract specifically the link time of individual modules from the build process. If these can be output as log messages we can extract this data for our metrics pipeline. Also build times for individual modules would be very useful. Are there features built in UnrealBuildTool which allow extracting more detailed build metrics like this?

Steps to Reproduce

Hey there,

This is the [second [Content removed] this past week of this feedback - just linking these for posterity.

Do you have any anecdotal details on how much longer it’s taking?

Regarding your question, there are a couple of BuildConfiguration.xml properties you have at your disposal.

<ParallelExecutor> <bShowCompilationTimes>true</bShowCompilationTimes> <bShowPerActionCompilationTimes>true</bShowPerActionCompilationTimes> </ParallelExecutor> We do have an experimental system that we have been exploring called Studio Analytics, which has some integrations into builds FWIW.

If you can also provide some additional context (UBA vs not) that could be helpful.

Kind regards,

Julian

Hi Julian,

We did some manual testing of link time for our game dll between 6 months ago and today on a personal machine, no UBA, no incredibuild enabled. We did 3 runs on each CL and took the average times.

Building a single file and linking the dll went from 31 s on average to 72 seconds on average. Of course a lot of game code was developed over this time period, as well as the update from unreal 5.4 to unreal 5.5. We would love to improve our tracking of this so that we can find these regressions earlier on in the future. I’ll have a look at those 2 flags you’ve linked to see if it gives the details we’re looking for!

/Ted

Hey Ted,

Thanks for the details here - and yea let me know how it goes on your end with this. I alluded to Studio Telemetry & Horde Analytics prior, which is certainly something that is still experimental - but will be useful in catching these exact types of regressions in the future. If you have feedback on either of those systems, feel free to post it back here.

Also worth noting that the Log.uba has some really great information as well, but this may be tough to compare and contrast with 5.4. It can be found: ENGINE_ROOT/Engine/Programs/UnrealBuildTool/Log.uba.

Kind regards,

Julian