実行中に、Javaプログラムはどのようにしてそれが使用しているメモリ量を知ることができますか?

java memory runtime

実行中に、Javaプログラムはどのようにしてそれが使用しているメモリ量を知ることができますか?

私はそれがいかに効率的かは気にしない!

  28  9


ベストアンサー

VonCの答えは対話的な解決策です – あなたがプログラム的に知りたいのなら、あなたは Runtime.totalMemoryを使用することができます。 JVMで使用されている合計量を調べるには http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html#totalMemory()[Runtime.freeMemory()をクリックします。 ]そのうちのどれだけがまだ利用可能であるかを調べるために(すなわち JVMには割り当てられていますが、JVMには割り当てられていません。新しいオブジェクトはこのメモリを使用できます。

これらはインスタンスメソッドです – 最初にシングルトンインスタンスを取得するために Runtime.getRuntime()を使用してください。

31


java1.6がどこかにあり、プログラムがjava 1.4.2、1.5、または1.6で実行されている場合は、https://visualvm.dev.java.net/[visualVM session]を起動してアプリケーションに接続できます。そして記憶をたどる

image:https://visualvm.dev.java.net/images/docs/monitor.png [ビジュアルVMによる監視アプリケーションの画像]

(現時点では画像は表示されていませんので、例として アプリケーションの監視を参照してください。)

4


これは正確ではありませんが、おおよその目安として、 `Runtime.getRuntime.totalMemory()`から `Runtime.getRuntime.freeMemory()`を差し引くだけです。 プログラムの冒頭でそれを行い、 `JVM ‘のオーバーヘッドメモリの使用状況と実行の後半の間隔で確認してください。

4


java.lang.Runtime.totalMemory()が必要な情報を提供します – http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html

0


タイトルとURLをコピーしました