OpenJDK notes

「OpenJDK notes」の編集履歴(バックアップ)一覧はこちら

OpenJDK notes」(2006/11/16 (木) 00:35:32) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

* openJDK notes ** TIERED compilation 7.0 からはメソッドのコンパイルが client / server compiler で起こる。 実行回数、ループのバックエッジが閾値を超えたメソッドはまずは(比較的) シンプルな client コンパイラでコンパイルしておきその後もプロファイルを とり続け、やはりよく実行されているようであれば、より高度な最適化が 出来る server compiler でコンパイルされる。client compiler は C1 compiler, server compiler は C2 という内部モジュール名を持つので これらは C1, C2 とも呼ばれる。 openJDK のソースには #ifdef TIRED の条件分けや、コンパイルに関連した 関数などに compilation level が現れる。実装やその確認方法はもう少し よく見て行かないとわからない。 今のところ server か client を選択して使用することになっているようで、 TIRED compilation もまだ実装中ということか。 ** Interpreter スクリプト実行用にバイトコードが増えるかもという話だったが、新しい物は 見当たらない。実装はまだまだこれからということか。fast bytecode は 増えているみたい。 CC_INTERP はデバッグ向けということか? ビルドしなおして速さを 確認してみよう。 ** Escape Analysis これも、注目の機能だったが、関連するクラスは C2 周りにしか見られない。 確かに Phi, constant node 周りで記録する関数を読んでいる。実際に どのようにスロットの割り当てを変えてきているからまだ見えてこない。 この、初期版では Escape Analysis は default off. しかも使えるのは C2 のみ。期待としてはインタープリタ、C1/C2 すべてで積極的に Escape Analysis を行って、可能なものは極力スタックにアロケートするような 物になるかと思っていたが、そういうものではないらしい。もしそうなったら ヒープ、GC の負荷が劇的に下がってパフォーマンスも向上するのではとも 思っていたのだが... 簡単なプログラムを書いてエスケープしないオブジェクトをアロケートして ハッシュコードを取るようなメソッドを繰り返し呼ぶようにしてみる。 C2 で Escape Analysis をオンにして実行してみるが、GC はオフの時と 同様におきている。まだ実装途中で、スタック上のオブジェクト確保は まだ出来ないということか。
* openJDK notes ** TIERED compilation 7.0 からはメソッドのコンパイルが client / server compiler で起こる。 実行回数、ループのバックエッジが閾値を超えたメソッドはまずは(比較的) シンプルな client コンパイラでコンパイルしておきその後もプロファイルを とり続け、やはりよく実行されているようであれば、より高度な最適化が 出来る server compiler でコンパイルされる。client compiler は C1 compiler, server compiler は C2 という内部モジュール名を持つので これらは C1, C2 とも呼ばれる。 openJDK のソースには #ifdef TIRED の条件分けや、コンパイルに関連した 関数などに compilation level が現れる。実装やその確認方法はもう少し よく見て行かないとわからない。 今のところ server か client を選択して使用することになっているようで、 TIRED compilation もまだ実装中ということか。 ** Interpreter スクリプト実行用にバイトコードが増えるかもという話だったが、新しい物は 見当たらない。実装はまだまだこれからということか。fast bytecode は 増えているみたい。 CC_INTERP はデバッグ向けということか? ビルドしなおして速さを 確認してみよう。 ** Escape Analysis これも、注目の機能だったが、関連するクラスは C2 周りにしか見られない。 確かに Phi, constant node 周りで記録する関数を呼んでいる。実際に どのようにスロットの割り当てを変えてきているからまだ見えてこない。 この、初期版では Escape Analysis は default off. しかも使えるのは C2 のみ。期待としてはインタープリタ、C1/C2 すべてで積極的に Escape Analysis を行って、可能なものは極力スタックにアロケートするような 物になるかと思っていたが、そういうものではないらしい。もしそうなったら ヒープ、GC の負荷が劇的に下がってパフォーマンスも向上するのではとも 思っていたのだが... 簡単なプログラムを書いてエスケープしないオブジェクトをアロケートして ハッシュコードを取るようなメソッドを繰り返し呼ぶようにしてみる。 C2 で Escape Analysis をオンにして実行してみるが、GC はオフの時と 同様におきている。まだ実装途中で、スタック上のオブジェクト確保は まだ出来ないということか。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。