読書会(Javaパフォーマンス)第2回議事録
[ 戻る ]
=====================================================================================
Java読書会BOF 「Javaパフォーマンス」を読む会 第2回
=====================================================================================
<開催概要>
日時:2015年07月18日 10:00-17:00
場所:川崎市教育文化会館 第3会議室
出席者(敬称略):高橋(徹)、高橋(智)、村山、藤井、平山、中澤、川崎、後藤、吉田、根本、今井、吉本、小棚木、岩室、石黒、堅田、山田(書記)
3.4 Java Mission Control
-------------------------------------------------------------------------------------
3.4.1 JFR
-------------------------------------------------------------------------------------
JFRの利用には商用ライセンスが必要?
→個人で試すのは商用でないので、自由。商用ライセンスについては、要問い合わせ。
→NTT開発のHeapStatsは自由に使えるが、Linux限定。
3.4.1.4 JFRでのイベントの概要
-------------------------------------------------------------------------------------
イベントとは?
→次ページ(P70)で解説あり。
OSRとは?
→On-Stack Replacement。4章で解説あり。
3.4.2 JFRの有効化
-------------------------------------------------------------------------------------
Java8u40から起動引数でなく、外部から接続してJFRの記録を開始することが可能。
起動してすぐ終わるプログラムはどうする?
→起動時に指定して、終了時に出力することも可能。
3.4.3 JFRのイベント選択
-------------------------------------------------------------------------------------
「独自のイベントを定義できます」とは?
→Marcus Hirtの記事「Creating Custom JFR Events」に解説あり。
http://hirt.se/blog/?p=444
log4jがJMX対応しており、リモートツールでconfigを書き換えられるとの情報あり。
4章 JITコンパイラの仕組み
-------------------------------------------------------------------------------------
4.2.1 起動処理の最適化
-------------------------------------------------------------------------------------
NetBeansの起動が3秒とは、どうやって測ったのか?
4.2.2 バッチ処理の最適化
-------------------------------------------------------------------------------------
-serverは、いつかは全てコンパイルされるのでは?
→4.4.2(P96)で解説あり。
「これは、カウンターの値がメソッドやループの実行とともに加算されるだけでなく、時間の経過とともに減算もされるためです。」
4.3 JavaとJITコンパイラのバージョン
-------------------------------------------------------------------------------------
OpenJDKのチーム開発のJITWatchというツールで、コードキャッシュが覗けるらしい。
4.4.2 コンパイルのしきい値
-------------------------------------------------------------------------------------
「On-Stack」とは、メソッドの入り口はバイトコードで、途中のループがコンパイルされるなどの意味?
→OpenJDKのサイトに解説あり。
https://nothingcosmos.github.io/OpenJDKOverview/src/osr.html
4.5.1 コンパイラのスレッド
-------------------------------------------------------------------------------------
コンパイルの対象になったコードは、コンパイル完了を待つのか?
→スタンダードコンパイルはメソッド単位。
次回メソッドが呼びだれたときに、コンパイル後のコードになる。
→OSRコンパイルは、コンパイル完了まではバイトコードが実行され、ループの途中で差し代わる。
4.5.2 インライン化
-------------------------------------------------------------------------------------
配列のアクセスもインライン化される?
4.5.3 エスケープ分析
-------------------------------------------------------------------------------------
「エスケープ」とは?
→ループの中だけなど、外に出て行かないということ?
5章 ガベージコレクションの基礎
-------------------------------------------------------------------------------------
5.1 ガベージコレクションの基礎
-------------------------------------------------------------------------------------
ダングリングポインタとは?
→不正なポインタを指している状態
次回
=====================================================================================
P125 5.1.3.2 ガベージコレクションのアルゴリズムとスループットの測定 から
誤記など
=====================================================================================
P93 -XX:XX:ReservedCodeCacheSize=N → -XX:ReservedCodeCacheSize=N
P106 コードがentrant(中に入れない、の意)でなくなるのには
→ コードがentrantでなくなる(中に入れない、の意)のには
P118 -XX:-UseSerialGCflag → -XX:-UseSerialGCフラグ
[ 戻る ]