Re: [問題] 如何知道java程式吃了多少記憶體
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):