RFR: 6657: Add allocation pressure column to Memory and TLAB views
Jie Kang
jkang at openjdk.java.net
Thu Dec 19 19:45:03 UTC 2019
On Thu, 19 Dec 2019 18:15:10 GMT, Erik Gahlin <egahlin at openjdk.org> wrote:
>> I think JMC 5.5 had good pick of default columns and names.
>> https://www.javacodegeeks.com/wp-content/uploads/2015/03/jfr-allocations.png
>
> I think we can skip any mention of TLABs, at least if the purpose of the view is to find where the top allocation sites are.
>
> I think Class | Sample Count | Pressure will be sufficient for 99% of all users.
>
> There could be a seperate tab for those that want to tune TLABs, or hidden columns that can be made visible for advanced users. In the future, we will probably add an ObjectAllocation event that can be on by default that will not leak implementation details such TLAB information.
@thegreystone
Thanks for taking a look. I have shortened the names and added translations. I am also looking at moving the percentage aggregators (e.g. JdkAggregators.ALLOC_INSIDE_TLAB_SUM_PERCENTAGE) out of core, probably into the TlabPage related code, as well as adding something there to make it a cleaner solution.
It's a bit ugly since the aggregator does not compute a percentage itself. I've been toying with writing some helper classes or functions to work over multiple aggregators and item collections but I haven't come up with anything clean and it's outside the scope of this issue, imo.
@egahlin
Thank you for sharing the screenshot. I like the setup shown there as well. I will see if I can follow-up the changes here with some more adjustments to the Memory/Tlab page UI in JDK Mission Control.
Having the Stacktrace View be generic and available for all pages has made things a bit more complicated to mimic what you have shown. It may be cool to have some kind of extension functionality such that when a page is visited, the page can augment this generic view with additional columns (e.g. to show allocation pressure by method while on the memory page).
Regarding removal of reference to TLAB and having more advanced options via initially hidden features (e.g. columns), I think what you wrote makes sense. It may be that what you described is close to what is in JDK Mission Control. The Memory page shows events by class and includes the percentage column for total allocations. It has initially hidden columns for in/out of TLAB related aggregations. The TLAB page on the other hand, (screenshot in initial description) shows these TLAB events and now by thread or by top method. I think the organization of the UI can be improved and I'm going to think about and potentially propose more changes after this. (I should have also included a screenshot of the Memory page...)
-------------
PR: https://git.openjdk.java.net/jmc/pull/21
More information about the jmc-dev
mailing list