Java読書会BOF「Java Memory Management」を読む会 第3回議事録

[ 戻る ]


:orphan:

=====================================================
Java読書会BOF「Java Memory Management」を読む会 第3回
=====================================================

.. csv-table:: 開催概要

  "日時", "2023年7月22日 10:00 - 17:00"
  "場所", "てくのかわさき 第4研修室"
  "出席者(敬称略)","高橋(徹)、吉本、岩室、根本 (書記)"

.. note::

p99から最後まで

サンプルコードのありか
https://github.com/PacktPublishing/B18762_Java-Memory-Management

Thuning the configurations of the JVM
-------------------------------------

CPUアフィニティを指定するoptionがある、OSで設定できるらしい。
  javaではdefaultでは30スレッドぐらい上がる、結構多い。
  GC同時実行のmax thread数を4とかに減らして、CPU負荷をさげたいときには -XX:ParallelGC
  memoryとかとおなじようにスレッドを制約したい
  -xx:parallel gc threads
  docker イメージで動かす場合は、ひとつひとつのthread割当は少ないほうが良いと思う。

  java_tool_options とかの環境変数はある、いったいいくつあるのか

  コマンドラインオプションは %JVM_OPTS% とかの環境変数を 
[宿題] java.properties とかの設定ファイルの読み込みと、 %JVM_OPTS% と java_tool_options との使いわけ

heapdumpファイルの見方として、eclipse の memory調査プラグインで見ることができる。
  java -XX:+PrintFlagsFinal -version
  メタスペースフリーレシオ : 物理メモリーの半分が推奨 :
  System.gc() が明示的に動くJavaが昔はあった、今でもヒントしては意味がある

[宿題] -XX:-UseParallelGC の引数のみ -引数になっている、ほかは +引数、これは正しいのか
  -XX:+UseSerialGC
  -XX:-UseParallelGC
  -XX:+UseConcMarkSweepGC
  -XX:+G1GC <-- これは誤植、 +UseG1GCが正しいはず
  -XX:+UseZGC

[宿題]  Tuningのオプションの確認
https://docs.oracle.com/javase/9/gctuning/introduction-garbage-collection-tuning.htm

7 Avioiding memory leaks
------------------------

参考コード
https://github.com/PacktPublishing/B18762_Java-Memory-Management

[宿題]  VisualVMからサンプルコードを起動することができるのか
    VisualVMでの再現手順が不明
    プロセスを落とさずにテストする方法

[宿題] StringBuilder で文字列連結をした時に、そのjavap でのイメージはどんなものになっているのか
    -> よくわからない、Dynamicxxx の様な特殊なbytecodeが生まれているらしい

[宿題]Mission Control で VusalVMと同じことはできないのか
JVMドキュメントへのリンク
https://docs.oracle.com/javase/specs/index.html

以上


[ 戻る ]