[8u] RFR 8158871: Long response times with G1 and StringDeduplication

Per Liden per.liden at oracle.com
Thu Jun 30 07:14:30 UTC 2016


Hi,

On 2016-06-29 17:39, Vladimir Kempik wrote:
> Hello
>
> Please review this backport of 8158871 to jdk8u.
>
> Few changes for jdk8 were applied:
>
> 1) universall logging call changed to gclog_or_tty->print_cr
>
> 2) added casting of multiplication result (size_t * double) to size_t
> because on macosx platform the result was casted to double:
>
>   _entry_cache = new G1StringDedupEntryCache((size_t)(_min_size *
> _max_cache_factor));
> ...
>   _entry_cache->set_max_size((size_t)(size * _max_cache_factor));
>
>
>
>
> Testing: jprt
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8158871
> Webrev: http://cr.openjdk.java.net/~vkempik/8158871/webrev.00/


src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
--------------------------------------------------------
Since we don't have unified logging in 8 you need to check the 
PrintStringDeduplicationStatistics flags before printing "Deleted...". 
Also, since we don't have decorating tags we need more context in the 
printout. I suggest "[GC concurrent-string-deduplication, deleted X 
entries, X.XXX secs]".

So, the incremental change would be:

-  gclog_or_tty->print_cr("Deleted " UINTX_FORMAT " entries, " 
G1_STRDEDUP_TIME_FORMAT, count, end - start);
+  if (PrintStringDeduplicationStatistics) {
+    gclog_or_tty->print_cr("[GC concurrent-string-deduplication, 
deleted " UINTX_FORMAT " entries, " G1_STRDEDUP_TIME_FORMAT "]", count, 
end - start);
+  }


Other than that, the patch looks good.

cheers,
/Per

>
> Thanks
> -Vladimir
>



More information about the hotspot-gc-dev mailing list