java计算内存大小 java计算对象占用内存大小

使用第三方提供的jar包,介绍如下:

Introduction

With java.SizeOf you can measure the real  memory  size of your Java objects. Download it here


                The project is a little java agent what use the       package java.lang.Instrument introduced in Java 5 and is                released underGPL license.


                java.sizeOf is in early stage of development                      but it's quite usable and it was very useful for us to                  know the memory size of our HttpSession's objects. The best                  use of the                      library is inside an aspect to avoid dependencies in your        code.

Quickstart

1. include sizeOf.jar in the classpath of your application and use it in your    code like this:

 import net.sourceforge.sizeof
 ...
 SizeOf.skipStaticField(true); //java.sizeOf will not compute static fields
 SizeOf.skipFinalField(true); //java.sizeOf will not compute final fields
 SizeOf.skipFlyweightObject(true); //java.sizeOf will not compute well-known flyweight objects
 System.out.println(SizeOf.deepSizeOf(<your object>)); //this will print the object size in bytes

You can dump object's size setting the min size to log (if you don't specify an output stream standard out is used):

 SizeOf.setMinSizeToLog(1024); //min object size to log in bytes
 SizeOf.setLogOutputStream(new FileOutputStream("<your log file>"));

Use the humanReadable() method to get the object size in byte, kilo or mega (if you need giga your in trouble guy!):

 SizeOf.humanReadable(SizeOf.deepSizeOf(<your object>));

2. start your application with the following JVM parameter:

 -javaagent:/path_to/sizeOf.jar

 

 

3.在项目中引入SizeOf.jar

4.在VM arguments中加入 -javaagent:"F:\workspace\jtest\lib\SizeOf.jar"

5. have fun!

 

 

 

 

你可能感兴趣的:(java计算内存大小 java计算对象占用内存大小)