web-dev-qa-db-ja.com

アプリケーションが使用している現在のヒープサイズを表示する方法

NetBeansでは、構成を次のように変更したため、ヒープサイズを1 GBに増やしたと思います。

netbeans_default_options="-J-Xmx1g ......

NetBeansを再起動した後、アプリに1 GBが与えられていることを確認できますか?

これを確認する方法はありますか?

49
mrblah

このコードを使用してください:

// Get current size of heap in bytes
long heapSize = Runtime.getRuntime().totalMemory(); 

// Get maximum size of heap in bytes. The heap cannot grow beyond this size.// Any attempt will result in an OutOfMemoryException.
long heapMaxSize = Runtime.getRuntime().maxMemory();

 // Get amount of free memory within the heap in bytes. This size will increase // after garbage collection and decrease as new objects are created.
long heapFreeSize = Runtime.getRuntime().freeMemory(); 

知っておくと便利でした。

154
Drewen

Jconsole(ほとんどのJDKで標準)を使用して、任意のJavaプロセスのヒープサイズを確認できます。

8
public class CheckHeapSize {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        long heapSize = Runtime.getRuntime().totalMemory(); 

        // Get maximum size of heap in bytes. The heap cannot grow beyond this size.// Any attempt will result in an OutOfMemoryException.
        long heapMaxSize = Runtime.getRuntime().maxMemory();

         // Get amount of free memory within the heap in bytes. This size will increase // after garbage collection and decrease as new objects are created.
        long heapFreeSize = Runtime.getRuntime().freeMemory(); 

        System.out.println("heapsize"+formatSize(heapSize));
        System.out.println("heapmaxsize"+formatSize(heapMaxSize));
        System.out.println("heapFreesize"+formatSize(heapFreeSize));

    }
    public static String formatSize(long v) {
        if (v < 1024) return v + " B";
        int z = (63 - Long.numberOfLeadingZeros(v)) / 10;
        return String.format("%.1f %sB", (double)v / (1L << (z*10)), " KMGTPE".charAt(z));
    }
}
6
ram kumar

Sunのjvisualvmを使用して接続しますJava 6 JDK。起動フラグがリストされています。

次のツールを使用できます:Eclipse Memory Analyzer Tool http://www.Eclipse.org/mat/ .

とても便利です。

1
Sujith PS

Jvisualvmが過剰な場合や、cliのみが必要な場合の個人的なお気に入り: jvmtop

JvmTop 0.8.0 alpha   AMD64  8 cpus, Linux 2.6.32-27, load avg 0.12
https://github.com/patric-r/jvmtop

PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
3370 rapperSimpleApp  165m  455m  109m  176m  0.12%  0.00% S6U37 web        21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager   11m   28m   23m  130m  0.00%  0.00% S6U37 web        31
19187 m.jvmtop.JvmTop   20m 3544m   13m  130m  0.93%  0.47% S6U37 web        20
16733 artup.Bootstrap  159m  455m  166m  304m  0.12%  0.00% S6U37 web        46
0
Matt Fortier