RFR (S): Sorting the regions for collection set takes a while during pause
Aleksey Shipilev
shade at redhat.com
Thu Jan 26 17:48:08 UTC 2017
Maybe! Let's see...
-Aleksey
On 01/26/2017 06:43 PM, Roman Kennke wrote:
> Or maybe not sort the list at all? Downside: we need to scan all
> regions and decide on their garbage, instead of stopping at the first
> region that exceeds the garbage threshold. Upside: no sorting
> necessary. May be worth a try.
>
> Roman
>
>
> Am Donnerstag, den 26.01.2017, 18:39 +0100 schrieb Aleksey Shipilev:
>> Hi,
>>
>> Profiled the pause-intensive application for fun, and spotted an easy
>> optimization target. In final mark pause, we select collection set,
>> and for
>> that, we sort the regions by garbage. This incurs (N log N) calls to
>> comparator,
>> which calls SHHR->garbage() and handles nulls, etc.
>>
>> Doing a simple trick:
>> http://cr.openjdk.java.net/~shade/shenandoah/pause-sort-better/webre
>> v.01/
>>
>> ...improves timings:
>>
>> before:
>>
>> Final Mark Pauses (gross) = 7.05 s (a = 1059 us) (n = 6659)
>> (lvls, us = 717, 805, 830, 912, 9376)
>>
>> Final Mark Pauses (net) = 3.03 s (a = 454 us) (n = 6659)
>> (lvls, us = 102, 211, 221, 270, 8728)
>>
>> Prepare Evacuation = 2.04 s (a = 306 us) (n = 6659)
>> (lvls, us = 273, 293, 297, 301, 1490)
>>
>> after:
>>
>> Final Mark Pauses (gross) = 6.12 s (a = 851 us) (n = 7195)
>> (lvls, us = 547, 605, 629, 689, 5335)
>>
>> Final Mark Pauses (net) = 3.15 s (a = 438 us) (n = 7195)
>> (lvls, us = 98, 203, 211, 260, 4877)
>>
>> Prepare Evacuation = 0.75 s (a = 105 us) (n = 7195)
>> (lvls, us = 82, 96, 105, 109, 187)
>>
>> 0.2 ms off the already low pause time.
>>
>> Thanks,
>> -Aleksey
>>
>>
More information about the shenandoah-dev
mailing list