Javaでは、オブジェクトはヒープに格納されますが、メソッドローカル変数はスタックに格納されます。しかし、jconsoleを開くと、スタックに割り当てられているメモリはありません。私はちょうどヒープとpermgen(Java 6)を参照してください。スタックは物理的ではなくヒープ内の論理的な分離であるか?ヒープ内に論理メモリ領域をスタックしていますか?
答えて
JVMは、プロセスのネイティブスタックを使用します。これは、オーバーヘッドを最小限に抑え、スタックを仮想にすることができます(実際に使用されているものよりもはるかに大きな最大サイズを持つことができます)。
結果として、ほとんどのスタックはあまり使用されません(最大値の10%の< <)役に立つよりも混乱するかもしれません。
'JVMはプロセスのネイティブスタックを使用します.'私は、OSによってプロセスに割り当てられたメモリを意味すると信じています。それから、-Xmsと-Xmxのパラメータを使って前述のヒープとは別にする必要があります。 ? – emilly
@emilly仮想メモリ/アドレス空間のみが割り当てられます。これが起こると、タッチされたページだけが実際のメモリに変わります。最大値を10 MBに設定しても21 KBしか使用しない場合、6 * 4 KBが実際に使用されます(24 KB)スタックの最大サイズを設定できますこれはめったに必要ありませんが、 '-Xss'で実行します。 –
申し訳ありません。私は合計4GBのRAMを持っていると言う。ヒープ用に1GBの最大メモリを割り当てました。何らかの理由でスタックに512Mのメモリが必要な場合、3GB(4-1)から割り当てられますか? – emilly
いいえスタックは、メソッドの呼び出しに関連する情報(引数の値など)を保持するための専用領域で、メソッドが返った後にプログラムのフローが返される場所です。
次に、スタック領域のメモリ解析がjconsoleなどのメモリアナライザツールに表示されない理由 – emilly
@emillyスタックのサイズはめったに問題にならないでしょう。 –
メソッド呼び出しごとにスタックが変化して戻ります。アナライザツールは何を報告しますか? –
- 1. スタック領域としてメモリ領域を使用しますか?
- 2. Cプログラムのヒープ領域のメモリを追跡するには?
- 3. Spark ALS:Javaのヒープ領域がなくなりました。java.lang.OutOfMemoryError:Javaのヒープ領域
- 4. ジェンキンスサーバーにはヒープ領域が
- 5. はJFreeChartのヒープ領域
- 6. ワークシート内の領域/領域をループしますか?
- 7. ヒープまたはスタックからのメモリ割り当てですか?
- 8. rubyはメモリ管理にスタックを使用していますか?
- 9. 子スレッドのスタック領域
- 10. ggplot2のスタック領域グラフがスタック行として返される
- 11. Javaヒープ領域の問題Junits
- 12. 仮想メモリの処理 - スタックとヒープの間のスペース
- 13. スタックのメモリまたはJavaのヒープにメモリが割り当てられていますか?
- 14. スタックとヒープのメモリ位置パターン
- 15. C++はどこにスタックとヒープをメモリに作成しますか?
- 16. スタックの空き領域 - 式内のテキストを置換する
- 17. 既存のd3領域をスタック領域に変換するにはどうすればよいですか?
- 18. 大きなメモリ割り当ての場合、ヒープ領域が表示されないのはなぜですか?
- 19. Hazelcastデータ分離(「メモリ領域」)
- 20. ARMリンカエラー:ヒープが使用されましたが、ヒープ領域が定義されていません
- 21. 反応しないネイティブマップの領域更新しない - 1つの領域にスタックしたマップ
- 22. スタックとヒープからメモリを解放する
- 23. Cloudformationが必要な領域にWAFスタックを起動していない
- 24. スタックを使用しないメモリ管理?
- 25. コンパイラがメモリをヒープに配置していますか?
- 26. Neo4j - Javaヒープ領域。間違ったクエリや設定ですか?
- 27. Java - メモリが不足している高位の予約領域
- 28. java.lang.OutOfMemoryErrorを使用したアプリケーション:Javaヒープ領域
- 29. GDBの[vvar]メモリ領域の内容にアクセスできませんか?
- 30. 新しい演算子ヒープ内の内部メモリ割り当て
[JVMヒープのフレームが割り当てられているか、スタックに割り当てられていますか?](http://stackoverflow.com/questions/26741925/is-frame-in-jvm-heap-allocated-or-stack-allocated/26779782#26779782) )と[どのように私はプログラムでスタックメモリの統計情報を取得するのですか?](http://stackoverflow.com/questions/26835087/how-do-i-get-stack-memory-stats-programatically/26852490#26852490) – apangin
私はお勧めしますJava 6から8に移行し、できるだけ早く 'jconsole'から' jmc'に移行します。 –
'jconsole'がこの情報を表示しないという事実は、スタックの構成についてのいかなる結論も許可しません。 – Holger