by DimitrisAndreou

DimitrisAndreou / memory-measurer

Automatically exported from

210 Stars 65 Forks Last release: Not found Apache License 2.0 21 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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.