Contenu connexe
Similaire à JVMの中身を可視化してみた
Similaire à JVMの中身を可視化してみた (20)
JVMの中身を可視化してみた
- 2. whoami
● Java, JavaScriptなどを扱う研究開発者
● ウェブアプリケーションを再起動するたびに使える
ヒープが減る現象を追ったのがJVMとの出会い
●
シングルトンだけど、シングルトンじゃなかった!
● 持ちネタ
● jps, jstack, jmap, javap, JProfiler, VisualVM
● ASM, PMD, GAE/J, @twistoire, @partakein
● java.lang.instrumentとMBeanで低速SQL解析
2
- 5. A Java Virtual Machine (JVM) is a
virtual machine capable of executing
Java bytecode.
– Wikipedia
5
- 10. とりあえず
バイトコード
ランタイムコンスタントプール
オペランドスタック
ローカル変数
→ #jvmjvm
10
- 13. ランタイムコンスタントプール
$ javap -verbose Integer
Compiled from "Integer.java"
// 中略
Constant pool:
const #1 = int -2147483648;
const #2 = int -2147483647;
const #3 = int 52429;
const #4 = int 65536;
const #5 = String #30;
// greater than Character.MAX_RADIX 13
- 14. フレーム
● オペランドスタック
●
演算に使用するデータを溜めておくスタック
● ローカル変数
● ローカル変数を記録する配列のようなもの
● thisやメソッド引数もここで扱う
● その他
→Stack on JavaVM 14
- 15. わかった、ような……
● 個々の役割はわかるが、どう協調動作するのかイ
メージしにくい
● classファイルに定数とバイトコードが書いてあるらしい
●
バイトコードをどうやって実行するのか?
●
ローカル変数やオペランドスタックはどう使われるの
か?
● 実際のコードがどう動くのか試してみたい
15