-
Enhancement
-
Resolution: Unresolved
-
P3
-
14
We calculate the cost per byte ergonomcis value without taking the number of active threads into account, i.e.:
src/hotspot/share/gc/g1/g1Policy.cpp
782 double cost_per_byte_ms = (average_time_ms(G1GCPhaseTimes::ObjCopy) + average_time_ms(G1GCPhaseTimes::OptObjCopy)) / copied_bytes;
If active_workers changes, this is wrong. Otoh active_workers probably does not change too much, and a linear interpolation might not work as speedup achieved may not perfectly scale with the number of threads.
There may be additional similar metrics that do not take the active workers into account properly.
Day one.
src/hotspot/share/gc/g1/g1Policy.cpp
782 double cost_per_byte_ms = (average_time_ms(G1GCPhaseTimes::ObjCopy) + average_time_ms(G1GCPhaseTimes::OptObjCopy)) / copied_bytes;
If active_workers changes, this is wrong. Otoh active_workers probably does not change too much, and a linear interpolation might not work as speedup achieved may not perfectly scale with the number of threads.
There may be additional similar metrics that do not take the active workers into account properly.
Day one.
- relates to
-
JDK-8231636 Adaptive GC thread calculation interferes with meeting pause time goal
-
- Open
-