java有一个很好的地方就是java的垃圾收集机制,这个机制集成于jvm的,对程序员来说是隐藏且不透明的.这种情况下,如何得到某个对象消耗的内存呢?
这种方法的代码是: 【程序编程相关:RCP(Rich Client Plat】
曾经看到过有人用以下方法来计算:在生成该object的前后都调用java.lang.runtime.freememory()方法,然后看两者之差即为该object消耗的内存量. 【推荐阅读:写一个登陆用的用户控件。】 这种想法是对的,但是实际上,jvm的freememory往往不能正确反应实际的free memory.比如在jvm要进行垃圾收集的时候,free memory就会缩小.而如果决定垃圾收集的时间发生在该object生成之后,而在第二次调用java.lang.runtime.freememory()之前,那么就会错误地增加该object消耗的内存量. 【扩展信息:使用递归获取网站下的所有同类型文件】 long totalmem = java.lang.runtime.freememory(); object mybigobject = null; system.out.println("you just got rid of " + totalmem - java.lang.runtime.freememory()); 在java专家by tony sintes的文章"discover how much memory an object consumes " 里面提到了应该用runtime.getruntime().totalmemory();并且计算两次之差来得到消耗的内存量.... 下一页