実行中に、Java プログラムはどのようにしてメモリの使用量を知ることができますか?
効率は気にしない!
VonC の答えは対話型の解決策です。プログラムで知りたい場合は、Runtime.totalMemory()を使用して JVM が使用する総量を調べ、Runtime.freeMemory()を使用してまだ使用可能な量を調べることができます (つまり、JVM に割り当てられますが、JVM内では割り当てられません(新しいオブジェクトはこのメモリを使用できます)。
これらはインスタンス メソッドです。Runtime.getRuntime()を使用して最初にシングルトン インスタンスを取得します。
どこかに java1.6 があり、プログラムが Java 1.4.2、1.5、または 1.6 で実行されている場合は、visualVM セッションを起動し、アプリケーションに接続して、メモリをたどることができます (さらに多くのこと)。
(画像は現在表示されていませんので、イラストはアプリケーションの監視を参照してください。)
これは正確ではありませんが、大まかな見積もりとして、Runtime.getRuntime.freeMemory()
からを引くだけRuntime.getRuntime.totalMemory()
です。プログラムの最初にこれを実行して、JVM's
オーバーヘッドのメモリ使用量を把握し、後で実行の間隔をおいて実行します。
java.lang.Runtime.totalMemory() は必要な情報を提供します: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html