問題タブ [jvm-arguments]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JVM ヒープ パラメータ
この件に関してすでに尋ねられた質問と多くのグーグルを読んだ後、私はまだ-Xmsオプションを明確に見ることができません
java -Xms=512m -Xmx=512m
私の質問は:との違いは何java -Xms=64m -Xmx=512m
ですか?
今のところ、次の答えがあります。
唯一の違いは、アプリケーションの実行中に実行されるガベージ コレクションの数とメモリ割り当ての数です。私は正しいですか?
この答えの理由は次のとおりです。
-Xms
オプションを に設定しても、起動後にアプリケーションが実際に物理メモリ512m
を使用することにはなりません。512M
これは、最新の OS 仮想メモリ管理と遅延ページ割り当てに関連していると思います。-Xms
( to512M
または toの設定64M
は、Linux の top または Windows のタスク マネージャーによって報告された初期使用メモリをまったく変更しないことに気付きました)
このオプションの影響を理解するのを手伝ってくれる人、Xms
または理解するのに役立つリンクを教えてくれる人はいますか?
前もって感謝します
マヌー
java - Java の -XX:+UseMembar パラメータとは
このパラメーターはあらゆる種類の場所 (フォーラムなど) で見られ、共通の答えは高度な同時実行サーバーに役立ちます。それでも、それが何をするのかを説明している公式のドキュメントを見つけることができません。また、それはJava 6で追加されましたか、それともJava 5に存在しましたか?
(ところで、多くのホットスポット VM パラメータの適切な場所はこのページです)
更新: Java 5 は、このパラメーターでは起動しません。
java - Javaアプリケーション内からVM引数を取得するには?
JVM に渡すことができるいくつかのオプションが明示的に設定されているか、またはデフォルト値を持っているかどうかを確認する必要があります。
より具体的には、デフォルトよりもネイティブスタックサイズが大きい特定のスレッドを1つ作成する必要がありますが、-Xss
オプションを指定してユーザーが自分でそのようなことを処理したい場合は、デフォルトのスタックサイズですべてのスレッドを作成したい(これは、-Xss オプションでユーザーが指定します)。
java.lang.System
や などのクラスをチェックしましjava.lang.Runtime
たが、これらは VM 引数に関する有益な情報を提供してくれません。
必要な情報を取得する方法はありますか?
java - JVM に渡されたメイン クラス/jar ファイル名を取得する
C++ アプリとして、Java プロセス (java.exe/javaw.exe) にクエリを実行して、JVM に渡されたメイン クラスまたは jar ファイル名を取得する方法はありますか? 「jps -l」を実行したときと同じ結果が必要です。
コマンドラインのパラメータを取得してクラス名をパースしてみるのもいいと思いますが、もっと簡単にクラス名やjarファイル名だけを確実に抽出する方法はないかと思っていました。
ありがとう!
java - JAVA_OPTS環境変数を使用してJavaを実行しても効果はありません
シェルスクリプトで、JAVA_OPTS環境変数を設定し(リモートデバッグを有効にしてメモリを増やすため)、次のようにjarファイルを実行します。
ただし、リモートデバッグに接続できず、JVMのメモリに変更がないため、JAVA_OPTS環境変数の影響はないようです。
何が問題なのですか?
PS:java -jar analyse.jar $*
アプリケーションでコマンドライン引数を処理するため、コマンドでこれらの設定を使用できません。
java - -XX:+UseParallelGC と -XX:+UseParNewGC の違い
若い世代のガベージ コレクションのアルゴリズムです。
2 つ目 (UseParNewGC) は、同時保有世代ガベージ コレクション ( Java Concurrent および Parallel GCを参照) で自動的にアクティブ化されますが、2 つの並列アルゴリズムに違いはありますか?
java - Javaスタックオーバーフローエラー - Eclipseでスタックサイズを増やす方法は?
Java で作成したプログラムを Eclipse で実行しています。プログラムには、非常に大きな入力に対して非常に深いレベルの再帰があります。小さい入力の場合、プログラムは正常に実行されますが、大きな入力が与えられると、次のエラーが発生します。
Javaスタックサイズを増やすことでこれを解決できますか?もしそうなら、Eclipseでこれを行うにはどうすればよいですか?
アップデート:
@ジョン・スキート
コードは、データ構造を構築するために解析ツリーを再帰的にトラバースしています。したがって、たとえば、コードは解析ツリー内のノードを使用していくつかの作業を行い、ノードの 2 つの子でそれ自体を呼び出し、それらの結果を組み合わせてツリーの全体的な結果を提供します。
再帰の合計の深さは解析ツリーのサイズによって異なりますが、再帰呼び出しの数が 1000 に達すると、コードは (より大きなスタックなしで) 失敗するように見えます。
また、小さな入力でも機能するため、バグが原因でコードが失敗することはないと確信しています。
java - Java -classpath オプション
-classpath
option を とともに使用すると、 env 変数java
の内容が追加または置換されますか?CLASSPATH
java - JNI メソッド内から JVM を作成する
JNI API を使用して JNI メソッド内から JVM を作成することは可能ですか?
JNI 関数「JNI_CreateJavaVM()」を使用してこれを実行しようとしましたが、機能しません (関数はゼロ未満の値を返し続けます)。
これが私が使用している基本的なコードです(C++):
USER_CLASSPATH には、ロードするクラスへのパスが含まれています。上記のコードの実行後、 res < 0 となり、JNI_CreateJavaVM() が失敗したことを示します。上記のコードは、Java から呼び出される C++ で記述されたネイティブ メソッドの一部です。これを機能させる方法についてのアイデアはありますか?
ありがとう。
java - Javaサーバー引数
java.exeのコマンドライン引数として使用される引数「-server」を見てきました。
java.exe -server MyClass
しかし、インターネットをどれほど検索しても、それが正確に何をするのかについてのドキュメントは見つかりませんでした。誰か説明できますか?