OpenJDK

オプションメモ


本気出すとき。 -server -XX:+TieredCompilation -XX:+AggressiveOpts

GCの影響をなくすとき。 -XmsXXm -XmxXXm

inline展開を無効化するとき。-XX:MaxInlineSize=1 -XX:FreqInlineSize=1

JVMは再帰関数を1-2回inline展開するため、LLVMやDart VMと比較して1-2割速いことがある。





第4回JVMコードリーディングの会の資料


C1コンパイラの概要を説明させていただきました。
資料へのリンクです。
資料の出来が悪いので、当日は90minほど口頭で質疑応答等交えながら説明させて頂きました。
暇を見つけて内容を充実させれればと思っています。

参考になりそうな資料

OpenJDKではなく、IBMのJITコンパイラの話だが、Javaの最適化に関して説明している。



ytoshimaさんがtwitterで紹介されていた資料。
serverコンパイラの実装の概要が網羅されてる。

C2コンパイラの内部のこともかかれていて結構参考になるし、グラフやアーキテクチャの絵なんかもある。

適用したツール群

・doxygen
・gnu global

OpenJDKのビルド方法

OpenJDKの主なオプション

Interpreter実行に関して

C1Compilerの概要

C2Compilerの概要

OpenJDKの機種依存部に関して





todo

Tieredコンパイラが面白そう
OSRとDeoptimizeの詳細に関しては、TemplateInterpreterを教わってから追ってみたい。
脱仮想化に関しては、C1よりC2のほうが頑張るので、詳細を追ってみたい。
BytecodeEscapeAnalysisはコード追うの簡単そう。
C2コンパイラに絶望した。。

  • 最終更新:2013-03-18 21:58:03

このWIKIを編集するにはパスワード入力が必要です

認証パスワード