Skip to content

Conversation

@stilscher
Copy link
Member

We discovered that one common case where reluctant destabilization leads to a greater number of evaluation and a worse runtime as without reluctant destabilization, is when the header (that is for example the type) of a function changes.

When the type of a function changes, the contexts for which it needs to be analyzed also change and therefore it is superfluous to analyze it for the previous but outdated context first. Also for functions whose type changed, the program point where this function is called is also detected to have changed, so the changed function is destabilized completely anyway.

This optimization substantially reduces the number of commits in the zstd repository for which reluctant destabilization deteriorates the runtime of an incremental analysis.

@sim642 sim642 self-requested a review March 23, 2022 20:00
@sim642 sim642 added the performance Analysis time, memory usage label Mar 23, 2022
@stilscher stilscher merged commit 5835a5d into interactive Apr 1, 2022
@stilscher stilscher deleted the incremental/restrict-rel-destab branch April 1, 2022 08:13
@sim642 sim642 mentioned this pull request Apr 1, 2022
5 tasks
@sim642 sim642 added this to the v2.0.0 milestone Aug 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance Analysis time, memory usage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants