問題タブ [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.

0 投票する
6 に答える
194556 参照

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または理解するのに役立つリンクを教えてくれる人はいますか?

前もって感謝します

マヌー

0 投票する
4 に答える
8712 参照

java - Java の -XX:+UseMembar パラメータとは

このパラメーターはあらゆる種類の場所 (フォーラムなど) で見られ、共通の答えは高度な同時実行サーバーに役立ちます。それでも、それが何をするのかを説明している公式のドキュメントを見つけることができません。また、それはJava 6で追加されましたか、それともJava 5に存在しましたか?

(ところで、多くのホットスポット VM パラメータの適切な場所はこのページです)

更新: Java 5 は、このパラメーターでは起動しません。

0 投票する
5 に答える
182982 参照

java - Javaアプリケーション内からVM引数を取得するには?

JVM に渡すことができるいくつかのオプションが明示的に設定されているか、またはデフォルト値を持っているかどうかを確認する必要があります。

より具体的には、デフォルトよりもネイティブスタックサイズが大きい特定のスレッドを1つ作成する必要がありますが、-Xssオプションを指定してユーザーが自分でそのようなことを処理したい場合は、デフォルトのスタックサイズですべてのスレッドを作成したい(これは、-Xss オプションでユーザーが指定します)。

java.lang.Systemや などのクラスをチェックしましjava.lang.Runtimeたが、これらは VM 引数に関する有益な情報を提供してくれません。

必要な情報を取得する方法はありますか?

0 投票する
2 に答える
591 参照

java - JVM に渡されたメイン クラス/jar ファイル名を取得する

C++ アプリとして、Java プロセス (java.exe/javaw.exe) にクエリを実行して、JVM に渡されたメイン クラスまたは jar ファイル名を取得する方法はありますか? 「jps -l」を実行したときと同じ結果が必要です。

コマンドラインのパラメータを取得してクラス名をパースしてみるのもいいと思いますが、もっと簡単にクラス名やjarファイル名だけを確実に抽出する方法はないかと思っていました。

ありがとう!

0 投票する
2 に答える
105803 参照

java - JAVA_OPTS環境変数を使用してJavaを実行しても効果はありません

シェルスクリプトで、JAVA_OPTS環境変数を設定し(リモートデバッグを有効にしてメモリを増やすため)、次のようにjarファイルを実行します。

ただし、リモートデバッグに接続できず、JVMのメモリに変更がないため、JAVA_OPTS環境変数の影響はないようです。

何が問題なのですか?

PS:java -jar analyse.jar $*アプリケーションでコマンドライン引数を処理するため、コマンドでこれらの設定を使用できません。

0 投票する
4 に答える
162702 参照

java - -XX:+UseParallelGC と -XX:+UseParNewGC の違い

若い世代のガベージ コレクションのアルゴリズムです。

2 つ目 (UseParNewGC) は、同時保有世代ガベージ コレクション ( Java Concurrent および Parallel GCを参照) で自動的にアクティブ化されますが、2 つの並列アルゴリズムに違いはありますか?

0 投票する
8 に答える
156217 参照

java - Javaスタックオーバーフローエラー - Eclipseでスタックサイズを増やす方法は?

Java で作成したプログラムを Eclipse で実行しています。プログラムには、非常に大きな入力に対して非常に深いレベルの再帰があります。小さい入力の場合、プログラムは正常に実行されますが、大きな入力が与えられると、次のエラーが発生します。

Javaスタックサイズを増やすことでこれを解決できますか?もしそうなら、Eclipseでこれを行うにはどうすればよいですか?

アップデート:

@ジョン・スキート

コードは、データ構造を構築するために解析ツリーを再帰的にトラバースしています。したがって、たとえば、コードは解析ツリー内のノードを使用していくつかの作業を行い、ノードの 2 つの子でそれ自体を呼び出し、それらの結果を組み合わせてツリーの全体的な結果を提供します。

再帰の合計の深さは解析ツリーのサイズによって異なりますが、再帰呼び出しの数が 1000 に達すると、コードは (より大きなスタックなしで) 失敗するように見えます。

また、小さな入力でも機能するため、バグが原因でコードが失敗することはないと確信しています。

0 投票する
4 に答える
59789 参照

java - Java -classpath オプション

-classpathoption を とともに使用すると、 env 変数javaの内容が追加または置換されますか?CLASSPATH

0 投票する
2 に答える
4516 参照

java - JNI メソッド内から JVM を作成する

JNI API を使用して JNI メソッド内から JVM を作成することは可能ですか?

JNI 関数「JNI_CreateJavaVM()」を使用してこれを実行しようとしましたが、機能しません (関数はゼロ未満の値を返し続けます)。

これが私が使用している基本的なコードです(C++):

USER_CLASSPATH には、ロードするクラスへのパスが含まれています。上記のコードの実行後、 res < 0 となり、JNI_CreateJavaVM() が失敗したことを示します。上記のコードは、Java から呼び出される C++ で記述されたネイティブ メソッドの一部です。これを機能させる方法についてのアイデアはありますか?

ありがとう。

0 投票する
1 に答える
16903 参照

java - Javaサーバー引数

重複の可能性:
「java-server」と「java-client」の実際の違いは?

java.exeのコマンドライン引数として使用される引数「-server」を見てきました。

java.exe -server MyClass

しかし、インターネットをどれほど検索しても、それが正確に何をするのかについてのドキュメントは見つかりませんでした。誰か説明できますか?