[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