Help us understand the problem. What is going on with this article?

見せてやろうJVMが持つ真のチカラを! JVMのオプションを一覧する方法について。

More than 5 years have passed since last update.

結論

以下のコマンドを実行すると、JVMで設定できるオプションの一覧を閲覧できます。

java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions

尚、詳細が知りたい方は、この辺りを眺めるとより具体的に分かります。

コマンドの説明

  • -XX:+PrintFlagsFinal
    • -XXオプションの一覧を標準出力するオプションです。
  • -XX:+UnlockDiagnosticVMOptions
    • 仮想マシンをチューニングする為のオプションを使えるようにするオプションです。
    • 以下に示すリストでは {diagnostic}となっているものがこのフラグによって変更できるようになります。
  • -XX:+UnlockExperimentalVMOptions
    • 将来サポート予定であるものの機能性が不安定なオプションを使えるようにするオプションです。
    • 最先端の機能を使いたいという先進的なユーザの為にあるオプションです。
    • 本来-XXはサポート無しの隠しオプションなのですが、これこそが 真の アンサポーテッドオプションです。
    • 以下に示すリストでは {experimental}となっているものがこのフラグによって変更できるようになります。

公式ドキュメント

僕の環境について

> java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)

です。

僕の環境におけるJVMオプション一覧

オプションは 806 個あるようです。

[Global flags]
    uintx AdaptiveSizeDecrementScaleFactor          = 4               {product}
    uintx AdaptiveSizeMajorGCDecayTimeScale         = 10              {product}
    uintx AdaptiveSizePausePolicy                   = 0               {product}
    uintx AdaptiveSizePolicyCollectionCostMargin    = 50              {product}
    uintx AdaptiveSizePolicyInitializingSteps       = 20              {product}
    uintx AdaptiveSizePolicyOutputInterval          = 0               {product}
    uintx AdaptiveSizePolicyWeight                  = 10              {product}
    uintx AdaptiveSizeThroughPutPolicy              = 0               {product}
    uintx AdaptiveTimeWeight                        = 25              {product}
     bool AdjustConcurrency                         = false           {product}
     bool AggressiveOpts                            = false           {product}
     bool AggressiveUnboxing                        = false           {C2 experimental}
     intx AliasLevel                                = 3               {C2 product}
     bool AlignVector                               = true            {C2 product}
     intx AllocateInstancePrefetchLines             = 1               {product}
     intx AllocatePrefetchDistance                  = 256             {product}
     intx AllocatePrefetchInstr                     = 0               {product}
     intx AllocatePrefetchLines                     = 3               {product}
     intx AllocatePrefetchStepSize                  = 64              {product}
     intx AllocatePrefetchStyle                     = 1               {product}
     bool AllowJNIEnvProxy                          = false           {product}
     bool AllowNonVirtualCalls                      = false           {product}
     bool AllowParallelDefineClass                  = false           {product}
     bool AllowUserSignalHandlers                   = false           {product}
     bool AlwaysActAsServerClassMachine             = false           {product}
     bool AlwaysCompileLoopMethods                  = false           {product}
     bool AlwaysLockClassLoader                     = false           {product}
     bool AlwaysPreTouch                            = false           {product}
     bool AlwaysRestoreFPU                          = false           {product}
     bool AlwaysTenure                              = false           {product}
    uintx ArrayAllocatorMallocLimit                 = 4294967295      {experimental}
     bool AssertOnSuspendWaitFailure                = false           {product}
     bool AssumeMP                                  = false           {product}
     intx AutoBoxCacheMax                           = 128             {C2 product}
    uintx AutoGCSelectPauseMillis                   = 5000            {product}
     bool AutoShutdownNMT                           = true            {diagnostic}
     intx BCEATraceLevel                            = 0               {product}
     intx BackEdgeThreshold                         = 100000          {pd product}
     bool BackgroundCompilation      
taichi@github
最近の活動成果は https://blog.satotaichi.info/ です。
https://blog.satotaichi.info/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした