作者CharArray (char[])
看板java
标题Re: [问题] 如何知道java程式吃了多少记忆体
时间Thu Nov 27 10:37:19 2008
※ 引述《spes (没有)》之铭言:
: ※ 引述《gech2001 (gech)》之铭言:
: : 我现在跑一个可能会很大hash的程式
: : 现在想要分析使用的记忆体量对象能的影响
: : 可是google找不到似乎可行用来看程式用了多少memory的方法
: : 请问各位大大有哪一个方法知道吃了多少记忆体吗
: : 谢谢大家~
: 如果是要在 Java 程式里知道 java heap 被吃了多少, 那
: java.lang.Runtime.freeMemory(),
: java.lang.Runtime.totalMemory()
: 可以帮你的忙
: 如果是要在 windows 上知道某程式吃了多少 memory, 最简单的就是按
: Ctrl + Alt + Del, 看一下 task manager 里的 Mem Usage
依我的经验,windows task manager的Mem usage完全不可靠,
同样一支程式,10M跟100M都发生过,也常有used heap + used non-heap
> win mem usage 的情形发生
linux的top指令会相对稳定一点,振荡不会那麽大,但我也是有观察过commited heap
+ commited non-heap > phy mem usage 的情形。
用jconsole是最方便的方式,在bin目录底下,如果要用程式取得的话,除了
Runtime.freeMemory()外,还可以用JMX API,如svenlee所举的例子。
: 如果是想要做 profiling 的话, fillano 给的 link 可以帮你的忙
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.99.0.10
※ 编辑: CharArray 来自: 122.99.0.10 (11/27 10:48)