作者bravomao (器材派)
看板java
标题Re: [问题] 取得某个物件占用的记忆体
时间Wed Feb 29 18:53:36 2012
※ 引述《kuro44776 (羽岚)》之铭言:
: 如题 小弟目前正在写一个大型程式
: 其中须要非常大量的记忆体空间,所以得频繁的使用IO来处理此问题
: 可是我想知道 我麽做法到底可以节省多少空间
: 因为目前都是拿比较小的资料集去测试 如果拿最大资料集的去跑可能得花一个礼拜
: 所以我得先估算一下记忆体的使用量 直到成功的压缩到合理的范围
: 如果跑到4 5天以後才发现记忆体用光那就真的悲剧了= =
: 之前有参考板上的一些测量heap space的方法,
: 但是不知道为什麽 每次测出来的结果都有很大的差异
: 同样的程式 可能相差到会有正负0.5倍的
: 所以小弟我想请问 有没有能直接取得物件占用的记忆体空间的方法?
除了Java本身提供的API以外,您可以找一下市场上有很多的商用Profiling Tool,
不过都不会很便宜就是了!
一般抓记忆体leak多会先去计算积聚物件的量,希望初步能从量上面来分析可能造成
leak的积聚物件。大部分的leak问题都跟积聚物件有关,例如说Vector的size是否只增加
而不减少之类的。
我也遇过leak是发生在session那边,原则上跟积聚物件都脱不了关系,或者是value bean
物件。
商用的我是用CA Wily Introscope,非常的强!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.229.63.63