-XX:+PrintCommandLineFlags

HotSpot の -XX オプションは数年前は200個以上あるとどこかで紹介されていたが、OpenJDK を調べてみると product で 450 以上、develop も入れると 800 以上もある。

普通はメモリ周りのチューニング、GC の選択、VM の選択のオプションぐらいしか使わないのかも知れないが、このあたりは環境を見て、自動的に設定をすることもあるので面倒くさい。

  • showversion を使えば client/server, revision がはっきりするので使っていたが、GC Ergonomics の結果などはどうやって簡単に確認するかいい方法を知らなかった。
  • XX:+PrintCommandLineFlags を使うとどこまでヒープを引き上げたか、ParallelGC

をつけたことが確認できる。

-XX:MaxHeapSize=528671744 -XX:+PrintCommandLineFlags -XX:+UseParallelGC

試したマシンはメモリ 2GB, GC Ergonomics で heap size は MIN(1G, 1/4 phys mem)
なので大体 512M になっている。