DescriptionNew algorithm for selecting evacuation candidates
This lifts the sqrt(n) limit on number of evacuation candidates,
replaces O(n * sqrt(n)) algorithm with O(n*log(n)) algorithm, and
removes hard-coded constants.
Evacuation candidates are selected as follows:
1) Sort pages from the most free to the least free.
2) Select the first m pages as evacuation candidates such that m is as
large as possible under the two conditions:
- The total size of live objects in the first m pages does not exceed
the given limit. This is based on the assumption that the evacuation cost is
proportional to the total size of moved objects.
- The fragmentation of the (m+1)-th page does not exceed the given
limit.
Committed: https://crrev.com/5e87a0997bad554799cdf1a07e46ecfd0af8e1fa
Cr-Commit-Position: refs/heads/master@{#28651}
Patch Set 1 #Patch Set 2 : #Patch Set 3 : rebase #Patch Set 4 : rebase #Patch Set 5 : Rebase, add tracing output, handle reduce memory footprint #Patch Set 6 : Adjust factor #Patch Set 7 : Default values #Patch Set 8 : Refactor #Patch Set 9 : Rebase and use allocation throughput #
Total comments: 13
Patch Set 10 : Address comments #Patch Set 11 : Rebase #
Messages
Total messages: 11 (3 generated)
|