問題タブ [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 - 非常に大きなオブジェクトに対応するためにPSOldGenを拡張するにはどうすればよいですか?
1つの非常に大きなオブジェクトにヒープスペースを割り当てる必要があるプログラムがありますがOutOfMemoryException
、その大きなオブジェクトが必要とするよりもはるかに多くの空きヒープがあるように見える場合にsを取得することがわかりました。
このテストプログラムは、問題を示しています。
として実行するとjava -Xmx40M -XX:+PrintGCDetails HeapTest 28000000
、次の出力が得られます。
私が作成しようとしている配列は約27344Kである必要があります。これは、PSOldGenオブジェクトスペースのサイズをわずかに超えています。ただし、未使用スペースの合計は約54000Kであり、これは私のアレイに必要なスペースのほぼ2倍です。私の(実際の)プログラムはアレイでインプレースで動作するため、アレイに必要なメモリをほとんど使用しません。したがって、必要なメモリの2倍を割り当て、その半分だけを使用するのは無駄に思えます。
JVMを説得して、デフォルトで可能と思われるよりも古い世代を成長させる方法はありますか?
java - Processing.exeのランチャー引数をどのように変更しますか?
processsing.exeを開いたときにランチャーの引数を変更するにはどうすればよいですか?64ビットのWindowsシステムで実行しており、JVMを32ビットモードで実行できる必要があります。
eclipse - Eclipse の Maven を介して VM のデフォルト引数を設定する
-Djava.library.path=./src/main/resources の vm args を指定して dll が自動的に取得されるようにし、maven でこれを指定して、他の開発者が手動で Eclipse を構成する必要がないようにしたい.
おそらくmaven eclipseプラグインが役立つかもしれないと思っていたので、次のようなことができます
しかし、プラグイン内から VM 引数を追加する方法がわかりません。
コマンドラインでmavenを介してテストを実行するためにこれを修正しました
私の現在の解決策は、開発者にこれをEclipseに手動で追加するように指示する必要があるということですが、これはあまり良くないようです。
これを解決する方法について何かアイデアを持っている人はいますか。
乾杯、
デビッド。
java - ファイル全体を JVM 引数に渡す
JVM に同じプロパティをロードする必要があるシステムがいくつかあります。-D フラグを使用して一度に 1 つのプロパティを読み込むことができますが、ファイル全体のすべてのプロパティを一度に読み込むものを探しています。例えば:
--options-file=blah.properties をネットワーク上のすべての jvm に一度追加するだけで、それ以降はプロパティ ファイルのみを変更できます。これは、ネットワーク共有上の単一の中央ファイルである可能性があります。
ありがとうございました、
編集: すべての引数またはコマンドは、Windows 環境でも機能する必要があります。したがって、UNIX に固有の bash またはスクリプト ハックは機能しません。
java - プロキシ(イカ)の背後にあるMavenテスト
squidプロキシサーバーの背後にあるMavenに問題があります。
リモートWebサービスとの外部通信に依存するシステムのモジュールがあります。
〜/ .m2 / settings.xmlの下にMavenプロキシ構成がありますが、これらの情報は依存関係のダウンロードにのみ使用されているようです。
'mvn test'を実行すると、これらの構成はコマンドライン実行呼び出しでは使用されません。これは、コンソールにエコーされる命令です。
テストやその他のMavenメソッドの実行中にJVMに引数を渡す方法はありますか?
jsf - プログラムで -Dorg.apache.el.parser.COERCE_TO_ZERO=false を設定する方法
この質問は次のようなものです。
jsf: UI で入力テキストにバインドされた整数プロパティが送信時にゼロに設定される
しかし、私は解決策に完全に満足していません。コンテキストは同じです。整数値を必要とする Web フォームがあります。テキストボックスが空のままの場合、整数フィールドを「null」にしたいのですが、代わりに EL パーサーが自動的に ID フィールドを「0」に設定します。
この問題は、ローカルの Tomcat VM で JVM パラメータを設定することで解決できます。
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
ただし、これはクライアントのマシンでは機能しません。この JVM パラメータを「コード内」で設定/変更することは可能ですか。
更新:これが要求されていることがわかりましたが、他の回避策がある場合は、それも聞きたいです。
https://issues.apache.org/bugzilla/show_bug.cgi?id=48813
更新 2:アプリケーションは「0」を実際の ID として扱う必要があるため、値を「0」から「null」に戻すことはできません。そのため、id テキストボックスが空のままかどうかを実行時に知る必要があります。
java - ヒープを増やすのではなく、JVMにGCを推奨しますか?
(「JVM」と言うときは、実際には「ホットスポット」を意味し、最新のJava 1.6アップデートを実行していることに注意してください。)
状況の例:
私のJVMは、-Xmxを1GBに設定して実行しています。現在、ヒープには500mbが割り当てられており、そのうち450mbが使用されています。プログラムは、ヒープにさらに200mbをロードする必要があります。現在、ヒープには300mb相当の「収集可能な」ゴミがあります(すべてが最も古い世代であると想定します)。
通常の操作では、JVMはヒープを700 mb程度に拡張し、それに近づくとガベージコレクションを実行します。
そのような状況で私が望むのは、JVMが最初にgcを実行し、次に新しいものを割り当てることです。これにより、ヒープサイズは500mbのままになり、使用されるヒープは350mbになります。
それを行うJVMパラメータコンボはありますか?
java - Spring applicationContext.xml で JVM 引数を読み取る方法
Spring を使用した JSF Web アプリケーションがあり、applicationContext.xml から JVM 引数を参照する方法を見つけようとしています。環境引数 (-Denv=development など) を指定して JVM を開始しています。次のようないくつかの異なるアプローチを見つけて試しました。
ただし、MyClass でセッター メソッドが呼び出されると、「development」ではなく、文字列「${environment}」が渡されます。System.getProperty() を使用するための回避策がありますが、Spring を介してこれらの値を設定できる方が、より適切でクリーンになります。これを行う方法はありますか?
編集: 前に言及すべきだったのは、JDBC 接続を使用してデータベースからプロパティをロードしていることです。プロパティ プレースホルダーを構成に追加すると、データベースから読み込まれたプロパティがプロパティ プレースホルダーによってオーバーライドされるため、これにより複雑さが増すようです。それが順序に依存しているかどうかはわかりません。どちらか一方はできるが、両方はできないようなものです。
編集:現在、次の構成を使用してプロパティを読み込んでいます:
jvm-arguments - antのjettyプラグイン:javaagentのようなjvmargを定義するには?
ant jetty タスクを実行していて、jetty プロセスに関連付けられたいくつかの jvmargs を提供したい: -Xmx -Dcom.sun.management.jmxremote.port -javaagent -...
ANT_OPTS 以外に利用可能なオプションが見つかりません..
jenkins - JenkinsがWindowsでサービスとして開始されたときに、より多くのヒープスペースを提供するにはどうすればよいですか?
Jenkinsで使用可能なヒープスペースを増やしたいです。しかし、それはサービスとしてインストールされているので、私はそれを行う方法がわかりません。