RFR: Shenandoah string deduplication

Zhengyu Gu zgu at redhat.com
Thu Dec 7 19:34:25 UTC 2017



On 12/07/2017 11:36 AM, Aleksey Shipilev wrote:
> On 12/07/2017 03:06 PM, Zhengyu Gu wrote:
>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/sh_strdedup/webrev.01/
> 
> This looks good.
> 
> Nits:
> 
> *) Weird template overload here, should be only the first one?
> 
>    48   template <class T, UpdateRefsMode UPDATE_MODE, bool STRING_DEDUP>
>    49   void work(T *p);
>    50
>    51   template <class T, UpdateRefsMode UPDATE_MODE>
>    52   void work(T *p);
> 
> *) I'd much rather prefer not to introduce intermediate ShenandoahMarkRefsMetadataClosureImpl and
> ShenandoahMarkResolveRefsClosureImpl, and instead make two additional copies that handle dedup:
> {ShenandoahMarkRefsMetadataClosure, ShenandoahMarkRefsMetadataDedupClosure,
> ShenandoahMarkResolveRefsClosure, ShenandoahMarkResolveRefsDedupClosure}. That would duplicate some
> code, but it would provide better textual structure.

Changed accordingly.

Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/sh_strdedup/webrev.02/

Reran hotspot_gc_shenandoah tests (fastdebug + release)

Thanks,

-Zhengyu

> 
> Thanks,
> -Aleksey
> 


More information about the shenandoah-dev mailing list