2012-03-11 5 views
2

私はメモリ上で非常に厳しい単位テストを書いています。 -Xmx2048mパラメータが必要です。それ以外の場合はOutOfMemoryExceptionになります。Java:このプロセスにどれだけのメモリが割り当てられていますか?

テスト内でどのくらいのメモリが割り当てられているかを確認する方法はありますか? TestsHaveEnoughMemoryなどのテストを作成し、メモリパラメータが必要であることをユーザーに知らせる説明エラーメッセージを表示して失敗すると便利です。

+1

[実行時には、どのようにJavaプログラムは、それが使用しているどのくらいのメモリ伝えることができますか?]の可能複製(http://stackoverflow.com/questions/239202/during-試してみてください実行可能なJavaプログラムの記述方法、それに多くのメモリを使用することができる) –

答えて

1

のようにマックスを得ることができ、実際にJMX APIを介して使用されるメモリは、同じ得ることができますそれをする。

これを試してください。

long total_memory = Runtime.getRuntime().totalMemory(); // Total available now 
long free_memory = Runtime.getRuntime().freeMemory();  // Free memory now 
long max_memory = Runtime.getRuntime().maxMemory();  // Max available ever 
1

実行時のmaxMemory()メソッドを使用すると、プロセスに割り当てられるヒープの量を取得できます。役に立つリンクhere

1

あなたはこの ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed();

のようにjconsoleを

に見るように、あなたがRuntime classを使用することができ、この ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax();

関連する問題