Submit Search
JVMの中身を可視化してみた
5 likes
6,159 views
Kengo Toda
1 of 17
Download now
Downloaded 16 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
More Related Content
PDF
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
PDF
Javaクラスファイルの読み方
y torazuka
PDF
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
ODP
スレッドダンプの読み方
Funato Takashi
PDF
Jvm言語とJava、切っても切れないその関係
yy yank
PPTX
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
PDF
楽して JVM を学びたい #jjug
Yuji Kubota
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
Javaクラスファイルの読み方
y torazuka
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
スレッドダンプの読み方
Funato Takashi
Jvm言語とJava、切っても切れないその関係
yy yank
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
楽して JVM を学びたい #jjug
Yuji Kubota
What's hot
(20)
PPTX
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
PDF
JavaScript基礎勉強会
大樹 小倉
PDF
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
PDF
Javaのログ出力: 道具と考え方
Taku Miyakawa
PPTX
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
PDF
モダンJavaScript環境構築一歩目
大樹 小倉
PDF
Groovyで楽にSQLを実行してみよう
Akira Shimosako
PDF
できる!並列・並行プログラミング
Preferred Networks
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
PDF
Jbatch実践入門 #jdt2015
Norito Agetsuma
PDF
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
PDF
Java EEを補完する仕様 MicroProfile
Norito Agetsuma
PDF
10のJava9で変わるJava8の嫌なとこ!
bitter_fox
PDF
JVM のいろはにほ #javajo
Yuji Kubota
PDF
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
PDF
覚醒!JavaScript
Haraguchi Go
PDF
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
PDF
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
PDF
ClassLoader Leak Patterns
nekop
PDF
いまさら恥ずかしくてAsyncをawaitした
Kouji Matsui
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
JavaScript基礎勉強会
大樹 小倉
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
Javaのログ出力: 道具と考え方
Taku Miyakawa
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
モダンJavaScript環境構築一歩目
大樹 小倉
Groovyで楽にSQLを実行してみよう
Akira Shimosako
できる!並列・並行プログラミング
Preferred Networks
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
Jbatch実践入門 #jdt2015
Norito Agetsuma
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
Java EEを補完する仕様 MicroProfile
Norito Agetsuma
10のJava9で変わるJava8の嫌なとこ!
bitter_fox
JVM のいろはにほ #javajo
Yuji Kubota
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
覚醒!JavaScript
Haraguchi Go
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
ClassLoader Leak Patterns
nekop
いまさら恥ずかしくてAsyncをawaitした
Kouji Matsui
Ad
Viewers also liked
(15)
PPT
Javaバイトコード入門
Kota Mizushima
PPTX
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
ToshiakiArai
PDF
Java素人がeclipseプラグインを作るためにやったこと
TAKEMURA Takayuki
PDF
Stack on JavaVM
Yuichi Sakuraba
PDF
Docker and jvm. A good idea?
Christopher Batey
PDF
脱Java初心者を目指すときに読むといいと思う本を考える会
terahide
PPT
Java9新機能概要
HonMarkHunt
PDF
ふりかえり
terahide
PDF
明日に繋がるふり返りのプラクティス
terahide
PPTX
Spring bootで学ぶ初めてのwebアプリ開発
terahide
PPTX
要求開発を補完する現状分析
Atsushi Takayasu
PPTX
アジャイル勉強会 公開資料
Atsushi Takayasu
PPTX
進化するArt
Takuya Matsunaga
PDF
データモデルは時空を越える
terahide
PDF
データベース設計徹底指南
Mikiya Okuno
Javaバイトコード入門
Kota Mizushima
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
ToshiakiArai
Java素人がeclipseプラグインを作るためにやったこと
TAKEMURA Takayuki
Stack on JavaVM
Yuichi Sakuraba
Docker and jvm. A good idea?
Christopher Batey
脱Java初心者を目指すときに読むといいと思う本を考える会
terahide
Java9新機能概要
HonMarkHunt
ふりかえり
terahide
明日に繋がるふり返りのプラクティス
terahide
Spring bootで学ぶ初めてのwebアプリ開発
terahide
要求開発を補完する現状分析
Atsushi Takayasu
アジャイル勉強会 公開資料
Atsushi Takayasu
進化するArt
Takuya Matsunaga
データモデルは時空を越える
terahide
データベース設計徹底指南
Mikiya Okuno
Ad
Similar to JVMの中身を可視化してみた
(20)
PDF
InvokeDynamic at #shikadriven 2012
Go Tanaka
PDF
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
PDF
VMを改めて学んで見る
kishima7
PDF
Mbed2013
lynxeyed
PDF
DoActionからJava VMバイトコードに変換する話
emorins
PDF
Hello Java
Chihiro Ito
PPTX
Jjug night seminar201208_lt_cxxからjvm起動
torutk
PDF
夏だからJava再入門
Katsumi Honda
PDF
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
PDF
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
なおき きしだ
PPTX
ななめ45°から見たJavaOne
AdvancedTechNight
PDF
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
KEY
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
PDF
Var handles jjug_ccc_spring_2018
David Buck
PDF
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
PPTX
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Koichi Sakata
PDF
Dalvikバイトコードリファレンスの読み方 改訂版
Takuya Matsunaga
PPTX
Javaで簡単にgpgpu aparapi
Ken'ichi Sakiyama
PDF
VisualVMの紹介
tattyamm
PDF
JDK 10 へようこそ
David Buck
InvokeDynamic at #shikadriven 2012
Go Tanaka
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
VMを改めて学んで見る
kishima7
Mbed2013
lynxeyed
DoActionからJava VMバイトコードに変換する話
emorins
Hello Java
Chihiro Ito
Jjug night seminar201208_lt_cxxからjvm起動
torutk
夏だからJava再入門
Katsumi Honda
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
なおき きしだ
ななめ45°から見たJavaOne
AdvancedTechNight
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
Var handles jjug_ccc_spring_2018
David Buck
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Koichi Sakata
Dalvikバイトコードリファレンスの読み方 改訂版
Takuya Matsunaga
Javaで簡単にgpgpu aparapi
Ken'ichi Sakiyama
VisualVMの紹介
tattyamm
JDK 10 へようこそ
David Buck
JVMの中身を可視化してみた
1.
JVMの中身を可視化してみた
by @eller86 1
2.
whoami ●
Java, JavaScriptなどを扱う研究開発者 ● ウェブアプリケーションを再起動するたびに使える ヒープが減る現象を追ったのがJVMとの出会い ● シングルトンだけど、シングルトンじゃなかった! ● 持ちネタ ● jps, jstack, jmap, javap, JProfiler, VisualVM ● ASM, PMD, GAE/J, @twistoire, @partakein ● java.lang.instrumentとMBeanで低速SQL解析 2
3.
概要 JVMってよくわからないから 図にしてわかりやすくしよう!
3
4.
What's JVM?
4
5.
A Java Virtual
Machine (JVM) is a virtual machine capable of executing Java bytecode. – Wikipedia 5
6.
JVMがあるから Write Once, Run
Anywhere 6
7.
JVMがあるから Java as a
Platform 7
8.
なんか重要そうなことは分かったし Javaプログラムがどうやって動くか
理解するのに重要っぽい 8
9.
仕様書を読んでみよう! The Java Virtual
Machine Specification Second Edition オンライン(HTML、英語) 書籍(日本語) 書籍(英語) 9
10.
とりあえず
バイトコード ランタイムコンスタントプール オペランドスタック ローカル変数 → #jvmjvm 10
11.
バイトコード pop getstatic indexbyte1 indexbyte2 ldc
index invokevirtual indexbyte1 indexbyte2 →Javaバイトコード入門 11
12.
ランタイムコンスタントプール
12
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
16.
作ってみた
16
17.
ご清聴ありがとうございました forkできます!→
http://jsdo.it/eller86/jvms2 Twitter @eller86 ブログ http://dev.worksap.co.jp/ 17
Download