forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of rust-lang#118667 - michaelwoerister:experiment-sparse-f…
…ingerprints, r=<try> Experiment: Only track fingerprints for queries with reconstructible dep-nodes. This is an experiment to collect performance data about alternative ways to adapt rust-lang#109050. The PR makes the following change: All queries with keys that are not reconstructible from their corresponding DepNode are now treated similar to anonymous queries. That is we don't compute a DepNode or result fingerprint for them. This has some implications: - We save time because query keys and results don't have to be hashed. - We can save space storing less data for these nodes in the on-disk dep-graph. (not implemented in this PR as I ran out of time. Maybe this would be a quick fix for `@saethlin` though?) - We don't have to worry about hash collisions for DepNode in these cases (although we still have to worry about hash collisions for result fingerprints, which might include all the same HashStable impls) - Same as with anonymous queries, the graph can grow additional nodes and edges in some situations because existing graph parts might be promoted while new parts are allocated for the same query if it is re-executed. I don't know how much this happens in practice. - We cannot cache query results for queries with complex keys. Given that that last point affects some heavy queries, I have my doubts that this strategy is a win. But let's run it through perf at least once. cc `@cjgillot,` `@Zoxc` r? `@ghost`
- Loading branch information
Showing
4 changed files
with
191 additions
and
115 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
Oops, something went wrong.