RFR (M): 8014659: NPG: performance counters for compressed klass space

Jon Masamitsu jon.masamitsu at oracle.com
Fri Aug 16 11:00:27 PDT 2013


Erik,

Changes look good.

Is it correct that MetaspaceCounters will include counters for ClassType
and NonClassType metadata if UseCompressedClassPointers is false?
And only for NonClassType if UseCompressedClassPointers is true?

And that's the way the MemoryPools are also divided?

Jon

On 8/14/2013 7:49 AM, Erik Helin wrote:
> Hi all,
>
> this change adds performance counters for compressed class space.
>
> Webrev:
> http://cr.openjdk.java.net/~ehelin/8014659/webrev.00/
>
> Changes to hotspot:
> The main changes are in metaspaceCounters.hpp and metaspaceCounters.cpp,
> where the class MetaspaceCounters has been split up into
> MetaspaceCounters and MetaspacePerfCounters. MetaspaceCounters now owns
> an instance of MetaspacePerfCounters. The class
> CompressedClassSpaceCounters has been added which also has its own
> instance of MetaspacePerfCounters. MetaspacePerfCounters initializes and
> updates the actual performance counters.
>
> The changes in metaspace.hpp/cpp were needed to get some additional data
> from the metaspace data structures. The method
> free_chunks_in_total(mdtype) was made public and the method
> free_bytes(mdtype) was added. Some common functionality was extracted
> into get_space_list(mdtype) which got rid of some duplicated code.
>
> The changes in:
> - g1MonitorinSupport.cpp
> - parallelScavengeHeap.cpp
> - genCollectedHeap.cpp
> - universe.cpp
> are only "one-liners" that either update or initialize the new performance
> counters.
>
> Changes to the testlibrary:
> - Added Asserts.java for writing asserts like "assertTrue",
>    "assertEquals", etc.
> - Added PerfCounter.java and PerfCounters.java to make it easy to
>    inspect performance counters for the currently running VM.
> - Added InputArguments.java so a test can check the arguments it got
>    passed.
> - Added InMemoryJavaCompiler.java for compiling a string into bytecode.
>    Useful for loading classes generated at runtime without using files.
> - Added ByteCodeLoader.java for defining a new class when you already
>    have the bytecode.
>
> Testing:
> - Added the new test TestMetaspacePerfCounters.java
> - JPRT
>
> Bug:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8014659
>
> Thanks,
> Erik



More information about the hotspot-gc-dev mailing list