-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[7.0.0] Optimize RepoMappingManifestAction (#20135)
The following optimizations reduce the time spent writing the repo mapping manifest from >6s to <80ms for a test referencing each of ~4,000 repos created by a module extension: * The set of repository names appearing in runfiles paths is only constructed once rather than for each repo by moving the `build()` call out of a closure. * The relevant entries per repository are now sorted after filtering out those for repos that don't contribute runfiles. * Crucially, the relevant mapping entries per repository are now cached per instance of `RepositoryMapping#entries()`. Since extension repos all share the same instance due to interning, this reduces the complexity from quadratic to linear in the number of extension repos. Closes #20091. Commit 305ab3b PiperOrigin-RevId: 581128978 Change-Id: I946e7788b8538e84714cf25ece89a86edd0d6948 Co-authored-by: Fabian Meumertzheim <[email protected]>
- Loading branch information
Showing
2 changed files
with
83 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters