わかっているように、java -Xmx
オプションを使用して、Javaプログラムで使用できる最大ヒープスペースを設定します。しかし、Javaプログラムが設定された値を読み取る方法はありますか? System.getMaximumHeapSpace()
(これは存在しません)のようなものです。実行時に最大ヒープスペースを読み込みます
答えて
Runtime.maxMemory
がありますが、Java仮想マシンが使用しようとするメモリの最大量が返されますが、JVMの起動時に設定される最大ヒープメモリであるかどうかは不明です。
class MaxMemory {
public static void main(String[] args) {
System.out.println(Runtime.getRuntime().maxMemory());
}
}
実行結果は以下ました:
C:\coobird\>java -Xmx64m MaxMemory
66650112
C:\coobird\>java -Xmx128m MaxMemory
133234688
これは、Windows上でJava SE 6バージョン1.6.0_12を使用しているだけでテストとして、私は次のプログラムを書いた
。
値は64 MB(67,108,864バイト)に近く、128 MB(134,217,728バイト)ですが、そうではありません。
私はそれをテストしました。それは-Xmxによって設定された値のようです。ありがとう。 –
それは近いと思われますが、正確に値ではありません。 – coobird
不足しているバイトがPermGenスペース用に予約されている可能性があります –
そして私は遠くXmxの値からある値を取得する:* 1024
java -Xmx64m MaxMemory
59703296
64 * 1024 * 1024 = 67108864
java -Xmx128m MaxMemory
119341056
128×1024 = 134217728
です11%の違い! (あなたはわずか0.7%で、私は勝ちます)。
java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Server VM (build 17.1-b03, mixed mode)
running on Linux 2.6
私は同様の結果を参照してください。
-Xmx512mと私は455M
-Xmx1024mと私はManagementFactory.getMemoryMXBeanを(使用して同じ結果を得る910M
をゲット)。getHeapMemoryUsage()
これらの不一致ははるかに大きすぎます無視される。
- 1. 大きなファイル(Javaヒープスペース)の読み込み
- 2. 実行時にスカラプロジェクトでクラスを読み込みます。
- 3. アプリの読み込み時間が最大になる方法
- 4. Android Java - WebView最大読み込み時間
- 5. Webページの読み込み時にコマンドラインスクリプトを実行する
- 6. ソケットの読み込みと書き込みを同時に実行する
- 7. ログイン後最初のページの読み込み時に最初のページの読み込み時にコードを追加
- 8. ページ読み込み時に静的FBMLでスクリプトを実行
- 9. ページの読み込み時にネイティブJavaScript関数を実行
- 10. 読み込み時にGridviewを読み込めません
- 11. 最初に読み込みアクティビティを実行すると画像が1つずつ読み込まれる
- 12. Firefox拡張:ページ読み込み時に実行
- 13. テキストファイルの最初の行を読み込み、次の行をループに渡して読み込みます。
- 14. Redshift大きなデータ読み込み、Python関数実行
- 15. StreamWriterでTextWriterを同時に使用して読み込み/書き込みを同時に実行する
- 16. Picasa画像は最初の実行時に読み込まれません
- 17. PowerPoint - ドキュメントの読み込み時にマクロを読み込みますか?
- 18. スプリングバッチは実行時に異なるファイルを読み込みます
- 19. ObjectiveCは読み取り時に書き込み操作を実行します
- 20. "実行時"に外部スクリプトからJSコンポーネントを読み込みます
- 21. 埋め込みswf自動読み込み時に読み込まれる
- 22. ページの読み込み時に毎回ページの読み込み
- 23. 関数はクリック時ではなく読み込み時に実行する
- 24. IE7、IE8の最初の読み込み時に大規模なフォントサイズ
- 25. URLをページに読み込み、javascriptを実行します。
- 26. 実行時のJRubyの読み込みとClassLoaderのリーク
- 27. C++実行時のdylib関数の読み込みエラー
- 28. 最終ページの読み込み時にjavascriptを呼び出す
- 29. 最初の読み込み時にクッキーを消去する
- 30. WPFのダイアログ読み込み時間を最小限にする
重複http://stackoverflow.com/questions/433406/how-to-get-the-max-sizes-of-the-heap-and-permgen-from-the-jvm? – Pool
プログラマチックでない方法は、JDKから利用可能な 'jmap'ユーティリティを実行することです。構文は 'jmap -heap'となります。フィールド 'MaxHeapSize'は、そのJavaプロセスで設定された 'Xmx'値を示します。 –
asgs