After some investigations, I’ve tracked down the major culprits to be 1) the archive builder and 2) the manifest builder.
The content in general builds fast (no texture compression), but when the final resource builds, it also performs some special tasks.
game.project
:
- GameProjectBuilder.createArchive took 77.316000
- ManifestBuilder.buildManifestData took 344.338000
- Task game.project took 427.038000 s
All content tasks took 471.820000 s (including game.project)
Entire build took 511.35s (not including engine build)
I’ve only looked into the manifest builder issue so far (since it takes 67% of the entire contentcompilation!) and it looks like fairly straight forward to fix.
Basically it’s doing a lot of redundant work over and over again (O(N^2) complexity).
Reminds me of of this quote from Bruce Dawson:
O(n^2) is the sweet spot of badly scaling algorithms: fast enough to make it into production, but slow enough to make things fall down once it gets there
I’ve added issue 5800 to track this (it should be fixed for the next release 1.2.183)