2011-12-17 8 views
3

こんにちは、私はどのように我々はスタックごとに割り当てられたメモリのサイズ(例えば-Xss512k)、スタックスペースとPermGenスペースに関するメモリ情報を取得するにはどうすればよいですか?

とPermGenスペースに割り当てられたメモリのサイズを得るのですか思っていたすべての(例えばXX:MaxPermSizeを= 256メートル)?

私は

  1. java.lang.Runtime.totalMemory

  2. java.lang.Runtime.freeMemory

  3. java.lang.Runtime.maxMemory

に見てきたが、機能はヒープ領域に関する情報を返します。

スタックスペースとPermGenスペースに関する情報をどのようにクエリしますか?

答えて

3

あなたの旅行はMemoryManagerMXBeanから始まり、すべてのメモリプールを見つけることができます。その後、MemoryPoolMXBeanに特定のプールの詳細を確認してください。

最も簡単な方法は、

List<MemoryPoolMXBean> memoryPoolMXBeans = 
             ManagementFactory.getMemoryPoolMXBeans(); 
for (MemoryPoolMXBean pool: memoryPoolMXBeans) { 
    out.println("pool: " + pool.getName()); 
    out.println(" type: " + pool.getType()); 
    out.println(" usage: " + pool.getUsage()); 
    out.println(); 
} 

また、How to determine the maximum stack size limit?を見てみることになる - 彼らは、JVMに渡されたパラメータを取得する方法を持っています。

+0

お礼ありがとうございます= D – Pacerier