RFR(M): 8214542: JFR: Old Object Sample event slow on a deep heap in debug builds

Markus Gronlund markus.gronlund at oracle.com
Wed Jan 2 16:15:12 UTC 2019


Greetings,

Please review the following change set containing some improvements / simplifications to the processing of edges as part of Old Object Samples:

Webrev: http://cr.openjdk.java.net/~mgronlun/8214542/webrev01/ 
Bug: https://bugs.openjdk.java.net/browse/JDK-8214542 

Summary: 

- Only store minimal set of edges needed (leak context + root context number of edges) instead of entire chain
- Optimistically reuse existing edge tree in the processing of chains where possible
- Do not build intermediate Edge[] array for storing a chain
- Do not invoke distance_to_root() unnecessarily (use frontier count for BFS and depth for DFS instead)
- Do not use Atomic::cmpxchg() version for BitSet (use set_bit() instead of par_set_bit())
- Refactor root processing to delegate to DFS and BFS as needed

Testing: jdk_jfr

Thanks
Markus




More information about the hotspot-jfr-dev mailing list