-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: Add tenured heap icon decorator #34
Comments
By G Xu on Apr 26, 2021 20:54 very cool idea. |
By Andrew Johnson on Apr 27, 2021 01:50 You might be able to get information from OpenJDK VMs using MBEANs. That would have to be captured at the same time as the HPROF dump, but perhaps the HPROF dump provider could do that. garbage-first heap total 57344K, used 34021K [0x0000000604800000, 0x0000000800000000) vmInfo() GC Precious Log: Heap: Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) Card table byte_map: [0x00000281e6340000,0x00000281e7320000] _byte_map_base: 0x00000281e331c000 Marking Bits (Prev, Next): (CMBitMap*) 0x00000281d054a280, (CMBitMap*) 0x00000281d054a2c0 Polling page: 0x00000281d0330000 Metaspace: Usage: Virtual space: Chunk freelists: MaxMetaspaceSize: 17179869184.00 GB CodeHeap 'non-profiled nmethods': size=120000Kb used=7262Kb max_used=7262Kb free=112737Kb |
By Andrew Johnson on Apr 27, 2021 01:53 jcmd VM.info gives similar information. |
By Andrew Johnson on Apr 27, 2021 04:50 We might want to show more information than just tenured or not, and ideally queries could be written which use this information. E.g. links from objects in the old region to objects in the new region might be more interesting that other inter or intra-regional links. We could add some APIs - but we would need to spend some time on getting a good, clean, but general API. A work-around might be to define dummy objects for the regions, and then have a link from an object to a region (rather than vice versa, which would mess up liveness). That might be use memory to store the link. Perhaps if objects had a dummy field the heap object reader could fill that in. Perhaps region information could be generalized for other off-heap memory such as direct byte buffers, or byte code or jitted code, or stack frames, or class metaspace or "perm gen", or DLL locations. |
By Kevin Grigorenko on Apr 27, 2021 09:41
That's a nice way to avoid complicating the API.
That's a great idea. |
| --- | --- |
| Bugzilla Link | 573175 |
| Status | NEW |
| Importance | P3 enhancement |
| Reported | Apr 26, 2021 16:16 EDT |
| Modified | Feb 01, 2023 04:29 EDT |
| Reporter | Kevin Grigorenko |
Description
In the same way there is a garbage collection root icon decorator (https://help.eclipse.org/latest/topic/org.eclipse.mat.ui.help/mimes/i-hoisgcroot.png), it would be nice if there was a decorator signifying that an object is in a tenured heap region to help differentiate between potentially transient versus long-lived objects. This is probably best left off by default to avoid the performance and memory overhead and then a preference may be selected to enable the decorators which creates a separate BitField to hold the state per object.
I couldn't find any metadata in HPROF dumps signifying the region ranges but DTFJ dumps seem to show the ranges through getSections: https://www.eclipse.org/openj9/docs/api/jdk8/platform/dtfj/com/ibm/dtfj/java/JavaHeap.html#getSections--
The text was updated successfully, but these errors were encountered: