JAVA SizeOf问题

kurumi 发布于 2015/06/09 11:16
阅读 329
收藏 0
long start = Runtime.getRuntime().freeMemory();
HZ_LogQuene<Object> logQuene=new HZ_LogQuene<Object>(30000);                                   for(int i = 0 ;i<3000;i++){
String str = "{\"customer_id\":0,\"customer_user_id\":0,\"form\":\"{'page':'1','rows':'20'}\",\"in_time\":\"2015-06-08 11:44:29\"," +
"\"log_type\":\"user\",\"module\":\"creditrisk\",\"pre_title\":\"hahahah\"," +
"\"project_name\":\"osystem\",\"request_type\":\"POST\",\"user_id\":"+i+"}";
	JSONObject	jsonObject=JSONObject.fromObject(str);
	logQuene.offer(jsonObject); }
System.out.println("dfree:"+(start -Runtime.getRuntime().freeMemory()));
	      //SizeOf.skipStaticField(true);SizeOf.skipFinalField(true);
System.out.println("sizeof:"+SizeOf.humanReadable(SizeOf.deepSizeOf(logQuene)));
System.out.println(logQuene.size());

输出结果:                                                                                                                      JAVAGENT: call premain instrumentation for class SizeOf
dfree:15545232
sizeof:904.0b
3000

为什么,sizeof计算得这么少,sizeof到底怎么计算的,我计算个单字母的字符串都有80





加载中
0
甘薯
甘薯

看来楼主没有C/C++的编程知识,

Sizeof只是确定变量本身占用的内存空间, 尤其是动态结构的.

不计算它所包含的内容占用的空间.

返回顶部
顶部