Need help with memory-measurer?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

230 Stars 71 Forks Apache License 2.0 21 Commits 10 Opened issues


Automatically exported from

Services available


Need anything else?

Contributors list

# 487,840
2 commits

ObjectExplorer, by Dimitris Andreou ([email protected])

= Introduction =

==[ Javadocs]==

A small tool that is very handy when e.g. you design data structures and want to see how much memory each one uses. To do this, it uses a simple reflection-based object-traversing framework ([ ObjectExplorer]). On it, it builds two facilities:

  • [ MemoryMeasurer], which can estimate the memory footprint of an object graph in bytes. This requires installing a javaagent when running the JVM, e.g. by passing {{{-javaagent:path/to/object-explorer.jar}}}.

  • [ ObjectGraphMeasurer] does not need a javaagent, and can also give a much more qualitative measurement than !MemoryMeasurer - it counts the number of objects, references, and primitives (of each kind) that an object graph entails.

Also of interest is the synergy with this project (of yours truly) : [ JBenchy]

Put together, they allow you to easily and systematically run and analyze benchmarks regarding data structures.

== How to use ==

An extremely simple example:

{{{ long memory = MemoryMeasurer.measureBytes(new HashMap()); }}}


{{{ Footprint footprint = ObjectGraphMeasurer.measure(new HashMap()); }}}

Quick tip: To use the MemoryMeasurer (to measure the footprint of an object graph in bytes), this parameter needs to be passed to th VM: -javaagent:path/to/object-explorer.jar

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.