MaxGCPauseMillis (G1ガベージコレクター用)などのJava GCオプションはJavaアプリケーション内から設定できますか、それともアプリケーションの起動に使用するコマンドラインで設定する必要がありますか?
つまり、コードで次の任意の部分を実行できますか?
java -XX:+UseG1GC -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=100 -jar app.jar
MaxGCPauseMillis (G1ガベージコレクター用)などのJava GCオプションはJavaアプリケーション内から設定できますか、それともアプリケーションの起動に使用するコマンドラインで設定する必要がありますか?
つまり、コードで次の任意の部分を実行できますか?
java -XX:+UseG1GC -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=100 -jar app.jar
いいえ、これは不可能です。すでに起動しているVMのGCオプションを変更することはできません。
それに、これは良い考えではないと思います。GCオプションは、ソースコードから独立している必要があります。
最近のアプリケーション(Eclipseなど)は通常、GCチューニングオプションを含むVMオプションを指定できるプロパティファイルを使用します。これはクリーンなソリューションだと思います。
JDKのjinfo-flagコマンドを使用して、Javaプロセスを実行するために特定の(ただしごくわずかな)-XXオプションクラウドを変更します。
-XX:+ PrintFlagsFinalオプションを使用して、すべてのJVMXXオプションのリストを表示できます。{managable}タイプのクラウドを持つオプションは実行時にjinfoによって変更されます。
しかし、それはおそらく悪い考えです。アプリケーションでのGCの動作が心配な場合は、GCについて学ぶ必要があります。魔法のXXオプションや他のショートカットはありません...残念ながら。