1 2 Previous Next 15 Replies Latest reply on Apr 10, 2018 2:50 PM by Klara Ward, Java Mission Control Dev-Oracle

    Is it possible with JMC 6 to have a size-based allocation profiling like the one from JMC 5 ?

    Anthony MAIRE

      Hello

       

      I'm working as a performance engineer for an editor, and JMC is a very valuable tool for us. A key feature we use a lot is allocation profiling since reducing the allocation rate has often a good impact on the overall application performance.

      We are currently starting to use Java 9, so we need to use JMC 6 to run a JFR instead of JMC 5.5.

      After struggling with the new interface, I succeed to use it to do nearly everything I used to do before. But unfortunately, the memory profiling in the new version seems VERY inaccurate and barely usable.

       

      As far as I know, in the "Stack Trace" view, we can only use the "Count" attribute, which seems to be the number of stack traces captured at TLAB creation or when allocation outside TLAB.

      Since the TLAB size is not constant, it is not at all a valuable information. I open an old flight recording made an a JVM 8 with both version of JFR.

      In this recording, 1 class represents 55% of the total allocated bytes, and there are 2 allocation spots for this class :

      - the first one in a thread pool which does few allocation

      - the second one in another thread pool which is allocating a lot.

      I assume that the JVM will allocate bigger TLABs for threads in the first pool

       

      Indeed, according to JMC 5.5, less than 2% of the allocation pressure is located on the first spot (129GB vs 2.5GB)

      However, in JMC6, only the "count" is available, and the first allocation spot count for 30% of the events (45K vs 105K)

      Let's say that the first spot is easy to optimize whereas the second allocation spot is not.

      => Using JMC6, we might think that optimizing the first spot is a valuable thing , but in reality it will be nearly insignificant

       

      Is there any setting I didn't see that allow JMC 6 to display size-based memory profiling ?

       

      Best Regards,

      Anthony

        1 2 Previous Next