gctoolkit icon indicating copy to clipboard operation
gctoolkit copied to clipboard

Support generational ZGC

Open loyispa opened this issue 1 year ago • 2 comments

Hi, here is a enhance for Generational ZGC , towards https://github.com/microsoft/gctoolkit/issues/364

major changes:

  1. Some events(PauseMark,ConcurrentMark, etc.) occur twice in a single Cycle, using their first timestamp.
  2. Sum the event durations and memory occupancies (live/garbage/allocated) for the young generation and old generation.

loyispa avatar Jun 26 '24 02:06 loyispa

Currently a single ZGC cycle is represented by a single event. For genZ I was looking at 2 events. I've thought of having an event per phase but I was concerned that this might lead to some downstream confusion with the analytics. Also, as you've mentioned, repeated phases per cycle is an issue. This may become even more confused depending on the log levels used by different projects. So, I'm leaning towards the single event per cycle but I'm not stuck on it. Are there reasons to create event per phase within a cycle that I'm missing?

kcpeppe avatar Jun 26 '24 19:06 kcpeppe

I'm inclined to think you're right to be concerned. Creating events per phase seems to break the "consensus" that each GCID represents a separate gc event. It may cause confusion in the counting of gc events.

loyispa avatar Jun 27 '24 02:06 loyispa

@kcpeppe Do you have time to take a look at this PR? Or if you have new plans for the genZ, please let me know :)

loyispa avatar Jul 03 '24 03:07 loyispa

This PR has caused me to reverse my thinking about how to integrate genZ into GCToolKit. I'd like to make a couple of mods and then merge.

kcpeppe avatar Jul 04 '24 20:07 kcpeppe