RFR: 8231153: Improve concurrent refinement statistics

Stefan Johansson stefan.johansson at oracle.com
Mon Oct 7 12:57:39 UTC 2019


Hi Kim,

On 2019-10-02 03:08, Kim Barrett wrote:
> New webrevs:
> full: https://cr.openjdk.java.net/~kbarrett/8231153/open.01/
> incr: https://cr.openjdk.java.net/~kbarrett/8231153/open.01.inc/

The changes looks good, just one question around the calculation of 
total time and size.

src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp
---
  415 Tickspan G1ConcurrentRefine::total_refinement_time() const {
  ...
  425   const_cast<G1ConcurrentRefine*>(this)->threads_do(&closure);
  426   return closure._total_time;
  427 }
  428
  429 size_t G1ConcurrentRefine::total_refined_cards() const {
  ...
  439   const_cast<G1ConcurrentRefine*>(this)->threads_do(&closure);
  440   return closure._total_cards;
  441 }

Did you consider grouping these two functions into one, to avoid 
iterating the threads twice? Not sure this is a big deal, and it might 
only make the code more complicated, but it feels a bit unnecessary to 
do two iteration right after each other.
---

Thanks,
Stefan

> 
> Testing:
> mach5 tier1-5
> some local by-hand testing to look at the rate tracking.
> 



More information about the hotspot-gc-dev mailing list