Java JSP如何取得HashMap的大小 20
如何取得HashMap内对象的大小,即其内容所内存资源多少字节。知道的告诉一下,不胜感谢!KeepMoving_OK:这种方法统计的内存大小只有Java使用的内存吗?如果...
如何取得HashMap内对象的大小,即其内容所内存资源多少字节。知道的告诉一下,不胜感谢!
KeepMoving_OK :这种方法统计的内存大小只有Java使用的内存吗?如果不是,怎样保证统计结果的准确性??? 感觉此路不通。。有没有其他的方法?
曾经想过序列化,不过序列化首先要求继承Serializable,程序就改大了,希望能有个方法改动小一些,直接取对象大小,或者计算response大小也行。 展开
KeepMoving_OK :这种方法统计的内存大小只有Java使用的内存吗?如果不是,怎样保证统计结果的准确性??? 感觉此路不通。。有没有其他的方法?
曾经想过序列化,不过序列化首先要求继承Serializable,程序就改大了,希望能有个方法改动小一些,直接取对象大小,或者计算response大小也行。 展开
4个回答
展开全部
Java里面没有提供像C,C++那样的Sizeof()方法,所以不可以直接取得内存资源大小.
但是有提供Runtime.getRuntime ().totalMemory ()和Runtime.getRuntime ().freeMemory ()这样的方法
所以内存使用大小 = totalMemory () - freeMemory();
但是又不能直接传送Hashmap对象去计算.必须在创建Haspmap之前gc一次,然后得到大小,创建HaspMap之后再gc一次,得到内存大小,然后相减.
===================================
是的,这种方法统计的内存大小是Java使用的内存.但是Java垃圾回收机制,所以不能精确到KB.那就是我们在计算得时候必须GC得原因.
还有一个办法就是上面这么兄弟说得,用序列化.把HaspMap序列化(其实就是写入到一个临时文件).然后这个临时文件得大小,就是内存占用得大小.这个可以精确到KB,但是效率上,值得考究.
但是有提供Runtime.getRuntime ().totalMemory ()和Runtime.getRuntime ().freeMemory ()这样的方法
所以内存使用大小 = totalMemory () - freeMemory();
但是又不能直接传送Hashmap对象去计算.必须在创建Haspmap之前gc一次,然后得到大小,创建HaspMap之后再gc一次,得到内存大小,然后相减.
===================================
是的,这种方法统计的内存大小是Java使用的内存.但是Java垃圾回收机制,所以不能精确到KB.那就是我们在计算得时候必须GC得原因.
还有一个办法就是上面这么兄弟说得,用序列化.把HaspMap序列化(其实就是写入到一个临时文件).然后这个临时文件得大小,就是内存占用得大小.这个可以精确到KB,但是效率上,值得考究.
展开全部
在jsp页面中 可以在<% %> 中间添加java代码.
则可以
<% Map map = new HashMap();
int size = map.size();
%> //如果map就是你要获取size的Map
在javascript代码中 可以通过
var size = '<%=size>'; // 获得size
则可以
<% Map map = new HashMap();
int size = map.size();
%> //如果map就是你要获取size的Map
在javascript代码中 可以通过
var size = '<%=size>'; // 获得size
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是说map的大小还是map里面的对象的字节数?
如果是前者的话就直接size就出来了
后者的话,可以通过序列化来得到
如果是前者的话就直接size就出来了
后者的话,可以通过序列化来得到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Entry出来吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询