SlideShare a Scribd company logo
1 of 56
末永 恭正 @YaSuenag
#ccc_r25
おことわり
 この資料は2014/05/17時点の
JDK8u/jdk8u-dev/hotspot(changeset
382a82b0a3e7:jdk8u20-b14)の内容を
基に記載しています。
OracleとJavaは、Oracle Corporation及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
自己紹介
 末永 恭正(すえなが やすまさ) @YaSuenag
 某SIerでJavaやってるサンデープログラマー
 OpenJDK Author(jdk9)
 IcedTea Committer
 HeapStats作ってます
http://icedtea.classpath.org/wiki/HeapStats/jp
Metaspace
 Permanent世代の代わりに導入されたメタ
データ管理の仕組み
 JEP 122: Remove the Permanent Generation
http://openjdk.java.net/jeps/122
“HotRockit”の一環
Perm世代をネイティブ
メモリに追い出す
扱うデータ
 JVM実装でMetaspaceObjクラスを継承して
いるものがMetaspaceで扱われる
 ClassType
○ 純粋なクラス情報
 NonClassType
○ ClassType以外の情報
○ シンボル情報やメソッドの最適化に必要な情報など
MetaspaceObjの一覧
Metaspaceの種類
StandardMetaspaceType 通常のMetaspace
BootMetaspaceType ブートストラップクラスローダ
専用
ROMetaspaceType クラス情報ダンプ時に使用され
るMetaspace
(-XX:+DumpSharedSpaces)
ReadWriteMetaspaceType
AnonymousMetaspaceType 匿名クラス専用
(InvokeDynamic)
ReflectionMetaspaceType defineClass専用
(リフレクションなどの動的定義クラス)
ClassLoaderとVirtualSpace
Class
Loader
仮想メモリ空間VirtualSpaceList
VirtualSpace
VirtualSpace
:
VirtualSpace
VirtualSpace
:
Class
Loader
メタデータ用の
バラバラの空間を
仮想的に1つに
=Metaspace
VirtualSpace
Compressed
ClassSpace !?
CompressedClassSpace
 圧縮Oopが利用可能な状況でのみ使用できる、
クラス情報に特化したメモリ空間
 UseCompressedOopsが有効であることが必須
○ 最大Javaヒープサイズが32GB以下であること
 UseCompressedClassPointersでコントロー
ル可能
圧縮Oop?
 LP64向けHotSpotでのみ利用可能なメモリ使
用量削減の仕組み
 64bitポインタを、ベースアドレスからのオフ
セットを用いてムリヤリ32bitで表現
どういうこと?
 LP64のメモリアライメントは8byte
 ObjectAlignmentInBytesでコントロール
○ デフォルト:8
 つまり、下位3bitはゼロで埋められている
 3bit右シフトしても情報欠損が起きない!
 JavaヒープやCompressedClassSpaceは連続
空間
 そこの上にアロケートされるメモリは、すべて開始
アドレスからのオフセットで表現可能!
プログラム的に表すと…
http://www.oracle.com/technetwork/jp/articles/java/compressedoops-427542-ja.html
圧縮Oop(narrowOop)は符号なし32bitで表現されるので
uint_max(4GB)<< 3 = 4GB×23 = 32GB
圧縮できる上限
Metaspaceの成長
= VirtualSpaceListの成長
=VirtualSpaceの追加
 成長度合い
 チャンクサイズで決まります
Metaspaceとチャンクサイズ
チャンクサイズはイジれません
…
HotSpotの1ワード:LP64なら8バイト、それ以外なら4バイト
対数(log)です
ここまでのまとめ
 Metaspaceは1クラスローダにつき1つ割り当
てられる
 Metaspaceは連続したメモリ空間ではない
 Metaspaceで扱われる情報は大きく2種類
 クラス情報
 それ以外
 Metaspaceには6つの種類が存在する
 LP64環境でJavaヒープサイズが32GB以下の
場合はCompressedClassSpaceが作られる
Metaspaceでも
OutOfMemoryErrorは起きます!
実証コード
import java.nio.file.*;
import java.util.jar.*;
public class MetaFlood{
public static void main(String[] args) throws Exception{
Path rtjar_path = FileSystems.getDefault().getPath(
System.getProperty("java.home"), "lib", "rt.jar");
try(JarFile rtjar = new JarFile(rtjar_path.toFile())){
rtjar.stream().filter(e -> !e.isDirectory())
.map(e -> e.getName())
.filter(n -> n.endsWith(".class"))
.map(n -> n.substring(0, n.length() - 6).replace('/', '.'))
.forEach(n -> { System.out.println(n);
try{
ClassLoader.getSystemClassLoader().loadClass(n);
}
catch(ClassNotFoundException ex){}
catch(OutOfMemoryError oome){
System.out.println(oome.toString());
throw oome;
}
});
}
}
}
OOMEを起こしてみる
$ /usr/local/jdk1.8.0_05/bin/java -XX:CompressedClassSpaceSize=1m MetaFlood
:
java.lang.OutOfMemoryError: Compressed class space
Exception in thread "main“
:
$ /usr/local/jdk1.8.0_05/bin/java -XX:-UseCompressedClassPointers 
-XX:MaxMetaspaceSize=5m MetaFlood
:
java.lang.OutOfMemoryError: Metaspace
Exception in thread "main“
:
その1:CompressedClassSpace溢れ
その2:Metaspace溢れ
Permanentとの違い
 MetaspaceがGCされることはありません
 クラスローダが破棄されると、関連する
Metaspaceが削除されます
 FullGC後にMetaspace容量の調整を行います
 拡張 or 削減
 ここでは閾値の変更のみを行い、実際のメモリ伸
縮は行いません
MetaspaceGC
Metaspace起因のGCが起こるま
で
1. Metaspaceからメモリを取ろうとする
i. 今あるメモリから取ろうとする
ii. Metaspaceを拡張して取ろうとする
2. GCを起こす
i. 使われていないクラスローダをGCで回収し、
できるだけ空きMetaspaceを増やす
ii. Metaspaceを拡張して取ろうとする
~通常はここまででMetaspaceがとれる~
→OutOfMemoryError
GCログの例
[Full GC (Metadata GC Threshold)
[PSYoungGen: 496K->0K(2560K)]
[ParOldGen: 388K->836K(6656K)] 884K->836K(9216K),
[Metaspace: 7292K->7292K(9216K)], 0.0123187 secs]
[Times: user=0.02 sys=0.00, real=0.01 secs]
[Full GC (Last ditch collection)
[PSYoungGen: 0K->0K(2560K)]
[ParOldGen: 836K->792K(6656K)] 836K->792K(9216K),
[Metaspace: 7292K->7292K(9216K)], 0.0134180 secs]
[Times: user=0.04 sys=0.00, real=0.02 secs]
※見やすく改行しています
Metaspaceが
足りなくて
GCが発生
GCしても
まだ足りないため
最後の悪あがき
「最後の悪あがき」とは?
 ソフト参照も回収対象にし、できる限りクラス
ローダを回収しようとします
5つの手段
1. ツール
 jstat
 jcmd
 jconsole
 VisualVM
2. JMX
3. GCログ
4. NMT
5. HeapStats
jstat
 -gcなどが使えます(単位は全部KB)
 MC:Metaspace Capacity
 MU:Metaspace Used
 CCSC: Compressed Class Space Capacity
 CCSU: Compressed Class Space Used
 -gcmetacapacityというオプションもあります
 メタスペースサイズとGC回数・時間の取得用
$ /usr/local/jdk1.8.0_05/bin/jstat -gc 7831
… MC MU CCSC CCSU …
… 4864.0 2377.7 512.0 258.0 …
jcmd
 PerfCounter.printで細かく見れます
 sun.gc.metaspace
 sun.gc.compressedclassspace
$ /usr/local/jdk1.8.0_05/bin/jcmd 7831 PerfCounter.print
:
sun.gc.compressedclassspace.capacity=524288
sun.gc.compressedclassspace.maxCapacity=1073741824
sun.gc.compressedclassspace.minCapacity=0
sun.gc.compressedclassspace.used=264208
:
sun.gc.metaspace.capacity=4980736
sun.gc.metaspace.maxCapacity=1082130432
sun.gc.metaspace.minCapacity=0
sun.gc.metaspace.used=2434808
:
jconsole
 各メモリプールから確認できます
VisualVM
 Metaspace全体の確認ができます
JMX
 各メモリプールがあります
GCログ
 PermだったところがMetaspaceに変わって
います
$ /usr/local/jdk1.8.0_05/bin/java -XX:+PrintGCDetails SystemGC
:
[Full GC (System.gc())
[PSYoungGen: 368K->0K(1024K)]
[ParOldGen: 8K->251K(59904K)]
376K->251K(60928K),
[Metaspace: 2377K->2377K(1056768K)], 0.0047055 secs]
[Times: user=0.01 sys=0.00, real=0.00 secs]
:
※見やすく改行しています
Native Memory Tracking (NMT)
 細かい情報を簡単に知りたいときに最適
 -XX:NativeMemoryTracking=[summary|detail]
 取り方は2種類
 -XX:+UnlockDiagnosticVMOptions と
-XX:+PrintNMTStatistics でjava終了時に取得
 jcmd <PID> VM.native_memoryで外側から取得
 Metaspaceは”Class”の部分です
jcmd VM.native_memory
$ /usr/local/jdk1.8.0_05/bin/jcmd 8858 VM.native_memory
8858:
Native Memory Tracking:
Total: reserved=2330153KB, committed=135365KB
:
- Class (reserved=1062006KB, committed=10102KB)
(classes #374)
(malloc=5238KB, #153)
(mmap: reserved=1056768KB, committed=4864KB)
:
インスタンス
クラス数
HeapStats
 1.1系を使ってください
 閾値監視(SNMP Trap送信)もできます
ココ
注意
 Metaspaceの値はCompressedClassSpaceの
値も含む、全体的な値です。
 CompressedClassSpace⊆Metaspace
 NonClassTypeなMetaspaceを見たい場合は、
MetaspaceからCompressedClassSpace分を
引いてください。
Metaspace関連オプション(-
XX)オプション 意味 デフォルト
MinMetaspaceExpansion Metaspaceの最小拡張単
位
256KB
MinMetaspaceFreeRatio GC後の最小フリー量の
パーセンテージ
40
MaxMetaspaceFreeRatio GC後の最大フリー量の
パーセンテージ
70
MaxMetaspaceExpansion Metaspaceの最大拡張単
位
4MB
Metaspace関連オプション(-
XX)オプション 意味 デフォルト
UseLargePagesInMetaspace Metaspaceにラージペー
ジを使うか?
(UseLargePages必須)
false
TraceMetadataHumongousAllocation 大きなオブジェクトを
Metaspaceにアロケート
するのをトレースする
false
InitialBootClassLoaderMetaspaceSize ブートクラスローダ用
Metaspaceの初期値
LP64:4MB
それ以外:
2200KB
MetaspaceSize Metaspaceをリサイズさ
せるための閾値
環境依存
MaxMetaspaceSize 最大Metaspaceサイズ unsigned long
最大値
CompressedClassSpaceSize CompressedClassSpace
のサイズ
1GB
-XX:MetaspaceSizeでは
Metaspaceの初期サイズを
指定できません!
hotspot-gc-devに質問してみた
http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2014-April/009853.html
JIRAにも登録しました:
JDK-8039867: Incorrect description: -XX:MetaspaceSize
https://bugs.openjdk.java.net/browse/JDK-8039867
オプションをつける前に…
 Metaspaceは連続空間ではない
 1クラスローダ1メタスペース
 ブートストラップ以外のクラスローダの初期サイズは
変更できない
○ InitialBootClassLoaderMetaspaceSize(デフォルト4MB)
 CompressedClassSpaceはクラス情報「だけ」
 シンボルやメソッドプロファイル情報などは別領域
 長時間動作させていれば、Metaspace使用量はあ
る程度安定してくる(はず)
 動的ロードをガンガン行う場合はワカラナイ…
一番注意すべきオプション
CompressedClassSpaceSize
JDK7u55:
VmSize: 2153520 kB
JDK8u5:
VmSize: 3390320 kB
約1GBの差!
オプションを何もつけずに起動したときの仮想
メモリ使用量(VSZ)
なぜ1GBも差が?
 AMD64なJDK7ではMaxPermSizeの初期値が
64MB(jdk7u-devのHotSpotの場合)
 Perm目的で64MBしかリザーブしない
○ MaxPermSizeはプラットフォームやHotSpot VMの種
類によりデフォルト値が異なります
 CompressedClassSpaceのデフォルトは1GB
 1GBリザーブしてしまう!!
デフォルトのまま使うときは
オーバーコミットに注意しましょう!
MaxMetaspaceSize
青天井!
OSに殺されるかも…
古の情報
http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/diff/740e263c80c6/src/share/vm/runtime/arguments.cpp#l1.83
 昔は1クラス情報=1KBとみなしていました
 CompressedClassSpaceをデフォルトで100MBに
 昔はClassMetaspaceSizeというオプションでした
 100,000クラスはロードできるよ!という話
1クラスあたりの占有サイズ
 フィールド数、メソッド数によって異なります
 一概に「だいたいxxバイト」と表現できません
実測一番!
と、いうわけで…
-XX:MaxMetaspaceSize=そこそこ
-XX:CompressedClassSpaceSize=100m
※責任はもちません
-XX:MaxMetaspaceSize=そこそこ
①-Xmx32g以下の場合
②-Xmx32g超えの場合
③もう何も気にしたくない場合
-XX:-UseCompressedClassPointers
Metaspace

More Related Content

What's hot

Jvm internal
Jvm internalJvm internal
Jvm internal
Go Tanaka
 

What's hot (20)

JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
Jvm internal
Jvm internalJvm internal
Jvm internal
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
 
Native Memory Tracking
Native Memory TrackingNative Memory Tracking
Native Memory Tracking
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 

Similar to Metaspace

Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
 
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
SORACOM, INC
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
chonaso
 

Similar to Metaspace (20)

Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
Maxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミングMaxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミング
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
 

More from Yasumasa Suenaga (9)

JDK付属ツールにパッチを出しまくったワケ
JDK付属ツールにパッチを出しまくったワケJDK付属ツールにパッチを出しまくったワケ
JDK付属ツールにパッチを出しまくったワケ
 
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶPanamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶ
 
Java 9で進化する診断ツール
Java 9で進化する診断ツールJava 9で進化する診断ツール
Java 9で進化する診断ツール
 
HotSpotコトハジメ
HotSpotコトハジメHotSpotコトハジメ
HotSpotコトハジメ
 
Heap statsfx analyzer
Heap statsfx analyzerHeap statsfx analyzer
Heap statsfx analyzer
 
HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)
 
HeapStatsのデモ (Java The Night)
HeapStatsのデモ (Java The Night)HeapStatsのデモ (Java The Night)
HeapStatsのデモ (Java The Night)
 
Serviceability Toolsの裏側
Serviceability Toolsの裏側Serviceability Toolsの裏側
Serviceability Toolsの裏側
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
 

Recently uploaded

Recently uploaded (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Metaspace