RFR: 6657: Add allocation pressure column to Memory and TLAB views
Marcus Hirt
hirt at openjdk.java.net
Fri Dec 20 11:03:07 UTC 2019
On Thu, 19 Dec 2019 19:44:24 GMT, Jie Kang <jkang at openjdk.org> wrote:
>> 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...)
Yep, it's already split up in a general "Memory" page and a TLAB allocations page (which is located under JVM Internals), and which is already grouped by class. The only missing part would be the "Pressure", which is basically Total Allocation (%), added by Jie's PR.
> 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).
Agreed. I believe this is discussed in another already existing issue. We can start a thread on the dev-list to discuss this in more detail.
-------------
PR: https://git.openjdk.java.net/jmc/pull/21
More information about the jmc-dev
mailing list