有时候,在做一些压力测试的时候,我们需要发送一些一定大小的数据来做测试,比如1K的数据来做测试,但是如何才能知道自己发送的数据的大小呢,在C中比较多的是使用sizeof(xxx),在java中,之前有通过Runtime来获取系统内存,执行完语句之后,再通过Runtime来获取内存,做差求大小,这个大家可以通过google搜索查看,这里介绍的是sourceforge的SizeOf.java
1.下载
http://sourceforge.net/projects/sizeof/
2.编写测试,并设定vm,如下:
-javaagent:"D:\projects\Test\WebRoot\WEB-INF\lib\SizeOf.jar"
3.执行代码,查看效果
String str = "abc";
System.out.println(SizeOf.deepSizeOf(str));
System.out.println(SizeOf.humanReadable(SizeOf.deepSizeOf(str)));
System.out.println(SizeOf.humanReadable(SizeOf.deepSizeOf(new Integer(65535))));
执行结果如下:
JAVAGENT: call premain instrumentation for class SizeOf 72 72.0b 744.0b
具体可参考sourceforge
http://sizeof.sourceforge.net/