通常のスレッドはどれくらいのメモリフットプリントをjavaに取り込みますか。オブジェクトが関連付けられていないと仮定します。スレッドがどれくらいのメモリを占有するかjava
答えて
スレッドスタックに割り当てられるメモリ量は、JVMバージョン+オペレーティングシステム固有のものです。これは、-XX:ThreadStackSizeオプション(古いバージョンでは-Xss)で構成されています。ちょうど512KBは「普通」ですが、64ビットLinuxでは1024ですが、これはおそらく最も重要なプラットフォームです(とにかく1人の意見です)
これはThreadStackSizeで、デフォルトでは512KB(32ビット)ですが、このメモリは作成時にトレッド用に予約されているのですか、メソッド呼び出しがネストされると動的に消費されますか? – Ranger
予約されています。つまり、プラットフォームにも依存しますが、基本的にオペレーティングシステムがメモリを提供できるかどうかを保証できない場合は、スレッドの作成時にOOM例外が発生します。 (メモリを提供できるのはもちろんアプリケーションデータをスワップ空間に強制することを含むかもしれません)。これは、基礎となるmalloc操作の契約に関連しています。これはすべて、現代のJVMとネイティブ・バインド・スレッドを前提としています。インタプリタで起こることは、JVMのビジネスです。 – Affe
また、linuxにはメモリの制限に依存しないユーザースレッドの上限があることを覚えておいてください。 Javaの「メモリ不足:ネイティブスレッドを作成できません」必ずしも実際に物理RAMが不足していたことを示すものではありません。 – Affe
Javaアプリケーションの各スレッドには、独自のスタックがあります。スタックは、戻りアドレス、関数/メソッド呼び出し引数などを保持するために使用されます。によって、デフォルトのスタックサイズは512KBです。 -Xss
jvmコマンドで変更できます。
java -Xss128k
- 1. JavaのGrizzlyがバッファ用に多くのメモリを占有していますか?
- 2. PNGイメージはどのくらいのメモリを占有しますか?
- 3. OpenCLスレッド占有
- 4. ヌル値が占めるメモリ量はどれくらいですか?
- 5. 私のJavaスレッドにはどのくらいのメモリが必要ですか?
- 6. 多くのメモリを占有しているアイドル状態のポストグルプロセス
- 7. Javaオブジェクトが参照するオブジェクトを含むメモリが占有しているメモリをプログラムで計算する
- 8. Python - 関数定義がメモリを占有していますか?
- 9. numpy.arrayのゼロエントリがメモリを占有していませんか?
- 10. このバイト文字列は実際にどのくらいのメモリを占有しますか?
- 11. 文字列データ型はどのくらいのデータを占有しますか?
- 12. 何がそんなにメモリを占有しているのか分からないのですか?
- 13. プロセスが占有するコアの数はいくつですか?
- 14. C++ポインタは整数より多くのメモリを占有しますか?
- 15. Webpackが9GB以上のメモリを占有するのは正常ですか?
- 16. TString Delphi XEでたくさんのメモリを占有するオブジェクトのリスト
- 17. メモリがスワイフで文字列変数で占有されています
- 18. -Xmx1024mを使用したJavaプロセスは、3GB常駐メモリをどのように占有できますか?
- 19. テーブルスライスはRでメモリを占有しますか?
- 20. 参照は実際にメモリを占有できますか?
- 21. 参照はC++でメモリを占有しますか?
- 22. Tomcatスレッドはどのくらいのメモリを消費しますか?
- 23. プロセスのどのくらいのメモリがページアウトされますか?
- 24. クラス定義はどのようにメモリを占有しませんか?
- 25. 共有されているMagento開発環境にどれくらいのメモリが必要ですか?
- 26. パスカルで変数が占有するメモリの量を計算するには?
- 27. Firebaseリスナーが膨大な量のメモリを占有しています
- 28. wxPythonイメージがたくさんのメモリを占める
- 29. UILabelの割り当てが永続的で、8Mbのメモリを占有する
- 30. スレッドを解放するときにJavaがヒープからメモリをリークする
良いプロファイラが役立ちます。 – Brady