Hi BaseTools experts,

 

We saw the clean build performance improvement after updating from edk2-stable201905 to edk2-stable201908, which is promising.

But we found the incremental build time increase 25%~35%, which is not good.

 

We’re building server platform. And we use --hash to speed up incremental build as described in https://github.com/BobCF/edk2/wiki/Incremental-Build

After upgrading to edk2-stable201908, none of AutoGen is skipped when I did an incremental build without any code change.

 

Dig into the issue, it is caused by commit https://github.com/tianocore/edk2/commit/0e7e7a264cd80ab71ea0f9e9da2d0617d4b539c4

From the code change logic, it seems like it require both --hash and --binary-source to perform cache based incremental build. However, when we only have --hash in build flag, it is not functional.

 

 

Here’s a build time log retrieved from -y report.log.

 

                                        201905 incremental |  201908 incremental |      201905 clean |     201908 clean 

Build Duration:                00:03:44                        00:04:40                            00:07:12                 00:06:19

AutoGen Duration:          00:02:40                        00:03:15                            00:04:28                 00:03:09

Make Duration:                00:00:36                        00:00:39                            00:01:21                 00:01:34

GenFds Duration:             00:00:27                        00:00:28                            00:01:22                 00:01:18  

 

We could see the AutoGen Duration has almost no change between clean and incremental build in 201908.

 

Could we fix this?

 

Thanks,

Derek