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