-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
gc: add some guard rails and refinements
Some transients cause the MemBalancer heuristics to compute odd values. Since there is not a background thread monitoring these rates, smooth out these transients at each interval and add a sequence of hard limits that iteratively refines these estimates. Some principles here: - Hard limits should always be applied as a MIN or MAX, not just applied directly (which might go too far or in the wrong direction). - The max heap should alter the allocation heuristics regime to change from the time based balancer to a proportional limit. The overallocation function accordingly is changed from a simple sqrt, which tends to start off too fast and end up too slow, into a low power polynomial (taken from array.c).
- Loading branch information
Showing
3 changed files
with
100 additions
and
40 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
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