Upload
Download free for 30 days
Login
Submit Search
Java オブジェクトの内部構造
1 like
2,316 views
T
Taku Miyakawa
Internal structures of Java objects (oops)
Technology
Read more
1 of 8
Download now
Download to read offline
1
2
3
4
5
6
7
8
More Related Content
PPTX
C# 8
m ishizaki
PDF
C++コンパイラ GCCとClangからのメッセージをお読みください
digitalghost
PPTX
.NET Core 3.0 で使える C# 8
m ishizaki
PDF
20120422i phonedeveloperworkshoppublished
Yoichiro Sakurai
PPTX
大人のお型付け
Nobuhisa Koizumi
PDF
C++入門?
tsudaa
PDF
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
PPTX
競技プログラミングのためのC++入門
natrium11321
C# 8
m ishizaki
C++コンパイラ GCCとClangからのメッセージをお読みください
digitalghost
.NET Core 3.0 で使える C# 8
m ishizaki
20120422i phonedeveloperworkshoppublished
Yoichiro Sakurai
大人のお型付け
Nobuhisa Koizumi
C++入門?
tsudaa
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
競技プログラミングのためのC++入門
natrium11321
What's hot
(19)
PPTX
ナウなヤングにバカうけのイカしたタグ付き共用体
digitalghost
PDF
Processing
Akifumi Nambu
PDF
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
PPTX
HDCLT
Daigaku Ando
PDF
Define and expansion of cpp macro
digitalghost
PDF
君はまだ,本当のプリプロセスを知らない
digitalghost
PDF
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
PDF
任意粒度機能モデルコードクローン検出手法のリファクタリング理解への適用の試み
Kamiya Toshihiro
PDF
実行トレース間のデータの差異に基づくデータフロー解析手法の提案
Kamiya Toshihiro
PDF
ROS JAPAN Users Group Meetup 01
Daiki Maekawa
PDF
Linq To Fun
deflis
PDF
templateとautoの型推論
MITSUNARI Shigeo
PDF
JavaScript 勉強会 ― 変数・演算子・文
Appresso Engineering Team
PDF
TypeScript & 関数型講座 第2回 TypeScript という言語
gypsygypsy
PDF
Cookpad Summer Intern 2015 - Programming Paradigm
Minero Aoki
PPTX
C# 9 のおすすめ新機能
m ishizaki
PDF
Lt8 JavaScriptで配列をコピーする
Shingo Inoue
PDF
Rubyの御先祖CLUのお話(原本)
洋史 東平
PDF
Effective Modern C++ 勉強会#1 Item3,4
Takashi Hoshino
ナウなヤングにバカうけのイカしたタグ付き共用体
digitalghost
Processing
Akifumi Nambu
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
HDCLT
Daigaku Ando
Define and expansion of cpp macro
digitalghost
君はまだ,本当のプリプロセスを知らない
digitalghost
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
任意粒度機能モデルコードクローン検出手法のリファクタリング理解への適用の試み
Kamiya Toshihiro
実行トレース間のデータの差異に基づくデータフロー解析手法の提案
Kamiya Toshihiro
ROS JAPAN Users Group Meetup 01
Daiki Maekawa
Linq To Fun
deflis
templateとautoの型推論
MITSUNARI Shigeo
JavaScript 勉強会 ― 変数・演算子・文
Appresso Engineering Team
TypeScript & 関数型講座 第2回 TypeScript という言語
gypsygypsy
Cookpad Summer Intern 2015 - Programming Paradigm
Minero Aoki
C# 9 のおすすめ新機能
m ishizaki
Lt8 JavaScriptで配列をコピーする
Shingo Inoue
Rubyの御先祖CLUのお話(原本)
洋史 東平
Effective Modern C++ 勉強会#1 Item3,4
Takashi Hoshino
Ad
Viewers also liked
(8)
PDF
深層学習フレームワーク Chainer の開発と今後の展開
Seiya Tokui
PDF
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
PDF
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
PDF
Javaのログ出力: 道具と考え方
Taku Miyakawa
PDF
Graph Algorithms Part 1
Taku Miyakawa
PDF
Introduction to DEEPstation the GUI Deep learning environment for chainer
Ryo Shimizu
PDF
CuPy解説
Ryosuke Okuta
PDF
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
深層学習フレームワーク Chainer の開発と今後の展開
Seiya Tokui
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
Javaのログ出力: 道具と考え方
Taku Miyakawa
Graph Algorithms Part 1
Taku Miyakawa
Introduction to DEEPstation the GUI Deep learning environment for chainer
Ryo Shimizu
CuPy解説
Ryosuke Okuta
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Ad
Similar to Java オブジェクトの内部構造
(20)
PDF
詳解Dexファイルフォーマット
Takuya Matsunaga
PDF
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
PDF
boost tour 1.48.0 all
Akira Takahashi
PDF
インメモリーで超高速処理を実現する場合のカギ
Masaki Yamakawa
PPT
Rpscala2011 0601
Hajime Yanagawa
PDF
Boost Tour 1.50.0 All
Akira Takahashi
PDF
[豆ナイト]Java small object programming
Yuichi Hasegawa
PDF
Boost tour 1_40_0
Akira Takahashi
PDF
JavaWorld Day 2009 Scala
Tomoharu ASAMI
KEY
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
PDF
Alluren of prototype-based OOP
azuma satoshi
PDF
Javaにおけるデータシリアライズと圧縮
moai kids
PPTX
Xtend の紹介
Oda Shinsuke
PDF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
Atsushi Tadokoro
ODP
Rubyのソースコードを読んでみよう(入門編)
baban ba-n
PDF
Haxe
Kazuhiro Eguchi
PDF
Var handles jjug_ccc_spring_2018
David Buck
PDF
【Unity道場スペシャル 2018京都】プロなら当然!プログラミング技能解説
Unity Technologies Japan K.K.
PPT
JVM-Reading-ParalleGC
Minoru Nakamura
詳解Dexファイルフォーマット
Takuya Matsunaga
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
boost tour 1.48.0 all
Akira Takahashi
インメモリーで超高速処理を実現する場合のカギ
Masaki Yamakawa
Rpscala2011 0601
Hajime Yanagawa
Boost Tour 1.50.0 All
Akira Takahashi
[豆ナイト]Java small object programming
Yuichi Hasegawa
Boost tour 1_40_0
Akira Takahashi
JavaWorld Day 2009 Scala
Tomoharu ASAMI
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
Alluren of prototype-based OOP
azuma satoshi
Javaにおけるデータシリアライズと圧縮
moai kids
Xtend の紹介
Oda Shinsuke
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
Atsushi Tadokoro
Rubyのソースコードを読んでみよう(入門編)
baban ba-n
Haxe
Kazuhiro Eguchi
Var handles jjug_ccc_spring_2018
David Buck
【Unity道場スペシャル 2018京都】プロなら当然!プログラミング技能解説
Unity Technologies Japan K.K.
JVM-Reading-ParalleGC
Minoru Nakamura
More from Taku Miyakawa
(14)
PDF
Matrix Multiplication in Strassen Algorithm
Taku Miyakawa
PDF
擬似乱数生成器の評価
Taku Miyakawa
PDF
コルーチンの実装について
Taku Miyakawa
PDF
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
PDF
Kink の宣伝
Taku Miyakawa
PDF
ラムダと invokedynamic の蜜月
Taku Miyakawa
PDF
Java Quine Golf
Taku Miyakawa
PDF
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
PDF
Processing LTSV by Apache Pig
Taku Miyakawa
PDF
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
PDF
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
PDF
Java 7 invokedynamic の概要
Taku Miyakawa
PDF
Hadoop jobbuilder
Taku Miyakawa
PDF
Kink: developing a programming language on the JVM
Taku Miyakawa
Matrix Multiplication in Strassen Algorithm
Taku Miyakawa
擬似乱数生成器の評価
Taku Miyakawa
コルーチンの実装について
Taku Miyakawa
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
Kink の宣伝
Taku Miyakawa
ラムダと invokedynamic の蜜月
Taku Miyakawa
Java Quine Golf
Taku Miyakawa
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
Processing LTSV by Apache Pig
Taku Miyakawa
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
Java 7 invokedynamic の概要
Taku Miyakawa
Hadoop jobbuilder
Taku Miyakawa
Kink: developing a programming language on the JVM
Taku Miyakawa
Java オブジェクトの内部構造
1.
Java オブジェクトの内部構造
2011-08-20 宮川 拓 (@miyakawa_taku)
2.
自己紹介
名前 宮川 拓 Twitter @miyakawa_taku 職業 SI屋 仕事 Hadooper Java 歴 4年 JVM 上で動くオレオレ言語を作っています http://code.google.com/p/kink-lang/
3.
問題設定 • Java オブジェクトが
JVM 上でどの様な実体 として表現されているのかが知りたい 1. Java オブジェクトを表現する構造体 2. Java オブジェクトに対する参照の持ち方 (フィー ルド、一時変数、配列の要素) 3. Java オブジェクトの作成・破棄の動作
4.
今日読む主なソースコード • interpreter/bytecodeInterpreter.cpp
– オブジェクトがどのような構造体として扱われてい るかを見る • oop/oop.hpp • oop/instanceOop.hpp – オブジェクトのメモリイメージを見る • oop/oop.inline.hpp – フィールドへのアクセス方法を見る
5.
oop 実装クラスの階層 oop
ヒープ上に確保される構造体の総称 instanceOop ふつうのクラスのインスタンス methodOop メソッド constMethodOop ? methodDataOop メソッドのプロファイリングデータ arrayOop 配列のインスタンス objArrayOop 参照型の配列のインスタンス typeArrayOop プリミティブ型の配列のインスタンス constantPoolOop メソッドのコンスタントプール constantPoolCacheOop メソッド実行時情報 (フィールドオフセット等) symbolOop メソッド名、クラス名等の intern 表現 klassOop クラス markOop 他の oop のメタ情報の一部。GC対象外 compiledICHolderOop ?
6.
oop のメモリイメージ
oopDesc _mark: markOop /* GCのためのメタ情報 */ _klass: klassOop /* oop の型 */ xxxOopDesc oop 実装クラスごとのメンバ変数 後続領域 oop 実装クラスごとの追加情報 /* こんなイメージ */ typedef struct { int x; int y; char buf[0]; } bitmap; bitmap *b = malloc(sizeof(bitmap) + x * y); b->x = x; b->y = y; memcpy(b->buf, buf, x * y);
7.
instanceOop のメモリイメージ
oopDesc _mark: markOop /* GCのためのメタ情報 */ _klass: klassOop /* oop の型 */ instanceOopDesc /* 特有のメンバ変数は無し */ 後続領域 フィールド群 jint num = 42 oop title ⇒ “VOXXX!”: java.lang.String oop info = null フィールドの種類と数は _klass によって決まる
8.
触れなかった || 分からなかった所 •
narrowOop と UseCompressedOops – Compressed oops 機能関連 • constMethodOop って何? – これはあまり深くなさそう • compiledICHolderOop って何? – JIT コンパイルに絡んでいそう • JIT コンパイルによるメソッド実体の差し変え はどのクラスの担当?
Download