Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
255
Help us understand the problem. What is going on with this article?
@taichi@github

見せてやろう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      
255
Help us understand the problem. What is going on with this article?
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
taichi@github
最近の活動成果は https://blog.satotaichi.info/ です。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
255
Help us understand the problem. What is going on with this article?