私はクラスタ上で大きなJavaアプリケーションを実行しています。したがって、JVMを最大限のヒープサイズで起動し、動作することを確認します。しかし、私はこれを何回も実行する必要があり、実行中に実際にヒープがどれだけ大きくなったのかを知りたい。私はVisualVMのようなツールでこれを行うことができますが、私は大きなUIベースのアプリケーションを実行したくない場合はどうしたらいいですか?私のアプリケーションが終了した後、この種のメモリ統計を取得するためにjvmに送ることができるいくつかのパラメータがありますか?または、簡単に実行できるコマンドラインベースのアプリケーションですか?実行後にJavasヒープの最大サイズを調べるにはどうすればよいですか?
1
A
答えて
3
jstat
はあなたの後です。 1秒ごとに統計情報が出力されます(または指定したもの)。次に、出力を分析して最大値を見つけることができます。 。
http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html#LowMemoryDetection
1
はあなたのようなものを使用してアプリケーションをプロファイルする必要があります);
1
Uは、ヒープサイズ
Runtime.getRuntime()の値を取得する方法以下これを利用することができますtotalMemory(:
2
あなたは、アプリケーション内からそれを行うことができます:
ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
は、次に返さMemoryUsage
オブジェクト上getCommitted()
、getUsed()
とgetMax()
メソッドを使用します。プログラムの
0
総使用/空きメモリはランタイムがメモリに関するいくつかの方法を有するjava.lang.Runtime.getRuntime();
を介してプログラムを得ることができます。次のコード例は、その使用方法を示しています。
ランタイムには、メモリに関連するいくつかの方法があります。次のコード例は、その使用方法を示しています。
import java.util.ArrayList;
import java.util.List;
public class PerformanceTest {
private static final long MEGABYTE = 1024L * 1024L;
public static long bytesToMegabytes(long bytes) {
return bytes/MEGABYTE;
}
public static void main(String[] args) {
// I assume you will know how to create a object Person yourself...
List<Person> list = new ArrayList<Person>();
for (int i = 0; i <= 100000; i++) {
list.add(new Person("Jim", "Knopf"));
}
// Get the Java runtime
Runtime runtime = Runtime.getRuntime();
// Run the garbage collector
runtime.gc();
// Calculate the used memory
long memory = runtime.totalMemory() - runtime.freeMemory();
System.out.println("Used memory is bytes: " + memory);
System.out.println("Used memory is megabytes: "
+ bytesToMegabytes(memory));
}
}
関連する問題
- 1. スタックの最大サイズを調べるにはどうすればよいですか?
- 2. 設定されている最大のJavaヒープサイズを調べるにはどうすればよいですか?
- 3. MySQL:どの行の値が大きいかを調べるにはどうすればよいですか?
- 4. 現在実行中のPHP実行ファイルを調べるにはどうすればよいですか?
- 5. C#でDataTable行のサイズを調べるにはどうすればよいですか?
- 6. 最大ヒープ内の値の優先順位を変更するにはどうすればよいですか?
- 7. 関数を最後から最初に実行するにはどうすればよいですか?
- 8. Ruby on Railsでアップロードされたファイルのサイズを調べるにはどうすればよいですか?
- 9. CでマウントされたUSBフラッシュドライブのサイズを調べるにはどうすればよいですか?
- 10. iOS:スーパービューのレイアウトでビューのサイズを調べるにはどうすればよいですか?
- 11. イメージのサイズをコマンドラインから最大2MBにバッチするにはどうすればよいですか?
- 12. TensowFlowの1次元ConvNet(conv1d)で最大プールを実行するにはどうすればよいですか?
- 13. golangで最大数のゴルーチンを実行するにはどうすればよいですか?
- 14. ファイル名の最後に ".pdf"が含まれているかどうかを調べるにはどうすればよいですか?
- 15. CKEditorでイメージアップロードの最大サイズを2MBに制限するにはどうすればよいですか?
- 16. webpackやNPMでパッケージのサイズを調べるにはどうすればよいですか?
- 17. ヒープに割り当てられたバッファのサイズを調べる
- 18. キャッシュ内の特定のRDDのサイズを調べるにはどうすればよいですか?
- 19. Rubyオブジェクトのメソッドを調べるにはどうすればよいですか?
- 20. Chromeプラグインのソースコードを調べるにはどうすればよいですか?
- 21. ウィジェットのToplevelコンテナを調べるにはどうすればよいですか?
- 22. onSaveInstanceStateのBundleオブジェクトのサイズを調べるにはどうすればよいですか?
- 23. javascriptでhtmlを調べるにはどうすればよいですか?
- 24. Linux上でC++プログラムのメモリスタックの最大サイズを調べるにはどうすればよいですか? (gnuコンパイラ)
- 25. フォームの最後の選択ボックスでjqueryコマンドを実行するにはどうすればよいですか?
- 26. キューに最後のアイテムが別の位置にあるかどうかを調べるにはどうすればよいですか?
- 27. Sparkでグラフの最大接続コンポーネントのサイズを取得するにはどうすればよいですか?
- 28. forループを調べてBig Oのパフォーマンスを調べるにはどうすればよいですか?
- 29. msiがタイムスタンプされているかどうかを調べるにはどうすればよいですか?
- 30. オブジェクトがヒープ内部にあるかどうかを調べる
うわー、それは複雑に見えます... – jonalv