DescriptionOilpan: A growing rate of Oilpan's heap and PartitionAlloc should be considered separately
We're now hitting a bunch of out-of-virtual-address-spaces in various benchmarks
(e.g., tiny-innerHTML-setter.html, PseudoClassSelectors.html etc) on oilpan Linux builds.
The reason is that a GC is never scheduled during the benchmark because the current
GC heuristic is improper. In short, we're hitting a scenario like this:
- allocatedObjectSize = 3 GB
- markedObjectSizeAtLastCompleteSweep = 5 MB
- partitionAlloc = 1 GB
This doesn't hit the GC condition because (3 GB + 5 MB + 1 GB) / (5 MB + 1 GB)
is not large enough.
(Note: Accurately speaking, the esimated size becomes smaller than (5 MB + 1 GB)
as the number of collected persistent handles increases, but in those benchmarks
persistent handles are not collected so aggressively.)
This is clearly insane and we should have a way to trigger a GC
if the allocatedObjectSize is X% larger than the markedObjectSizeAtLastCompleteSweep.
With that motivation, this CL changes the GC condition as follows:
- Trigger a GC if a growing rate of PartitionAlloc _or_ Oilpan's heap is larger than X%.
BUG=474470
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=201890
Patch Set 1 #
Total comments: 1
Messages
Total messages: 7 (2 generated)
|