KEMBAR78
Daftar
Login
Introduction to Java 11: Support and JVM Features #jjug | PDF
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yuji Kubota
PDF, PPTX
18,476 views
Introduction to Java 11: Support and JVM Features #jjug
Slide for JJUG Night Seminar 2018/Oct
Technology
◦
Read more
12
Save
Share
Embed
Download
Download as PDF, PPTX
1
/ 40
2
/ 40
3
/ 40
4
/ 40
5
/ 40
6
/ 40
7
/ 40
8
/ 40
9
/ 40
10
/ 40
11
/ 40
12
/ 40
13
/ 40
14
/ 40
15
/ 40
16
/ 40
17
/ 40
18
/ 40
19
/ 40
20
/ 40
21
/ 40
22
/ 40
23
/ 40
24
/ 40
25
/ 40
26
/ 40
27
/ 40
28
/ 40
29
/ 40
30
/ 40
31
/ 40
32
/ 40
33
/ 40
34
/ 40
35
/ 40
36
/ 40
37
/ 40
38
/ 40
39
/ 40
40
/ 40
More Related Content
PDF
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
by
Takahiro YAMADA
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
PDF
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
by
Takahiro YAMADA
PDF
JDKの選択肢とサーバーサイドでの選び方
by
Takahiro YAMADA
PDF
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
by
日本マイクロソフト株式会社
PDF
JDK 新しいリリースモデル解説 (ver. 2.2)
by
オラクルエンジニア通信
PPTX
Metaspace
by
Yasumasa Suenaga
PDF
Unified JVM Logging
by
Yuji Kubota
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
by
Takahiro YAMADA
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
by
Takahiro YAMADA
JDKの選択肢とサーバーサイドでの選び方
by
Takahiro YAMADA
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
by
日本マイクロソフト株式会社
JDK 新しいリリースモデル解説 (ver. 2.2)
by
オラクルエンジニア通信
Metaspace
by
Yasumasa Suenaga
Unified JVM Logging
by
Yuji Kubota
What's hot
PDF
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
PDF
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
by
Yoshiro Tokumasu
PDF
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
by
ikikko
PDF
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
by
Toru Makabe
PPTX
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
by
Shinya Yamaguchi
PDF
JVMのGCアルゴリズムとチューニング
by
佑哉 廣岡
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
KEY
オリジナルからデータ・ポンプに移植するツボ
by
真吾 吉田
PDF
オブジェクト指向できていますか?
by
Moriharu Ohzu
PDF
JDK: 新しいリリースモデル解説(ver.2.1)
by
オラクルエンジニア通信
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PDF
PostgreSQL Query Cache - "pqc"
by
Uptime Technologies LLC (JP)
PPTX
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
by
ShuheiUda
PDF
Entity Framework(Core)についての概要を学ぼう
by
TomomitsuKusaba
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
SQLアンチパターン - ジェイウォーク
by
ke-m kamekoopa
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
PDF
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
by
UnityTechnologiesJapan002
PDF
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
by
Atsushi KOMIYA
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
by
Yoshiro Tokumasu
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
by
ikikko
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
by
Toru Makabe
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
by
Shinya Yamaguchi
JVMのGCアルゴリズムとチューニング
by
佑哉 廣岡
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
オリジナルからデータ・ポンプに移植するツボ
by
真吾 吉田
オブジェクト指向できていますか?
by
Moriharu Ohzu
JDK: 新しいリリースモデル解説(ver.2.1)
by
オラクルエンジニア通信
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PostgreSQL Query Cache - "pqc"
by
Uptime Technologies LLC (JP)
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
by
ShuheiUda
Entity Framework(Core)についての概要を学ぼう
by
TomomitsuKusaba
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
SQLアンチパターン - ジェイウォーク
by
ke-m kamekoopa
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
by
UnityTechnologiesJapan002
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
by
Atsushi KOMIYA
Similar to Introduction to Java 11: Support and JVM Features #jjug
PDF
JDK: 新しいリリースモデル解説(ver.2.0)
by
オラクルエンジニア通信
PDF
20190202 jdk new_release_model_sendai
by
オラクルエンジニア通信
PDF
JDK:新しいリリースモデル解説 @ 熊本・福岡
by
オラクルエンジニア通信
PDF
これからのJDK/JVM 何を選ぶ?どう選ぶ?
by
Takahiro YAMADA
PDF
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
by
オラクルエンジニア通信
PDF
JDK:新しいリリースモデル解説 @ 岡山・広島
by
オラクルエンジニア通信
PDF
JDK: 新しいリリースモデル解説
by
オラクルエンジニア通信
PDF
Developer Festa Sapporo講演資料:Java最新動向とこれからの活用
by
オラクルエンジニア通信
PDF
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
by
オラクルエンジニア通信
PDF
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
by
Takashi Ito
JDK: 新しいリリースモデル解説(ver.2.0)
by
オラクルエンジニア通信
20190202 jdk new_release_model_sendai
by
オラクルエンジニア通信
JDK:新しいリリースモデル解説 @ 熊本・福岡
by
オラクルエンジニア通信
これからのJDK/JVM 何を選ぶ?どう選ぶ?
by
Takahiro YAMADA
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
by
オラクルエンジニア通信
JDK:新しいリリースモデル解説 @ 岡山・広島
by
オラクルエンジニア通信
JDK: 新しいリリースモデル解説
by
オラクルエンジニア通信
Developer Festa Sapporo講演資料:Java最新動向とこれからの活用
by
オラクルエンジニア通信
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
by
オラクルエンジニア通信
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
by
Takashi Ito
More from Yuji Kubota
PDF
Head toward Java 16 (Night Seminar Edition)
by
Yuji Kubota
PDF
Head toward Java 15 and Java 16
by
Yuji Kubota
PDF
Head toward Java 14 and Java 15 #LINE_DM
by
Yuji Kubota
PDF
Head toward Java 14 and Java 15
by
Yuji Kubota
PDF
オンライン会議と音声認識
by
Yuji Kubota
PDF
Head toward Java 13 and Java 14 #jjug
by
Yuji Kubota
PDF
Catch up Java 12 and Java 13
by
Yuji Kubota
PDF
Migration Guide from Java 8 to Java 11 #jjug
by
Yuji Kubota
PDF
Java 10でぼくたちの生活はどう変わるの?
by
Yuji Kubota
PPTX
Project Jigsaw #kanjava
by
Yuji Kubota
PPTX
Java 9 and Future #jjug
by
Yuji Kubota
PPTX
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
by
Yuji Kubota
PDF
Prepare for Java 9 #jjug
by
Yuji Kubota
PDF
jcmd #javacasual
by
Yuji Kubota
PDF
JavaOne 2016 Java SE Feedback #jjug #j1jp
by
Yuji Kubota
PDF
OpenJDK コミュニティに参加してみよう #jjug
by
Yuji Kubota
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
by
Yuji Kubota
PDF
JavaOne 2015 JDK Update (Jigsaw) #j1jp
by
Yuji Kubota
PDF
OpenJDK トラブルシューティング #javacasual
by
Yuji Kubota
PDF
HeapStats @ Seasar Conference 2015 LT
by
Yuji Kubota
Head toward Java 16 (Night Seminar Edition)
by
Yuji Kubota
Head toward Java 15 and Java 16
by
Yuji Kubota
Head toward Java 14 and Java 15 #LINE_DM
by
Yuji Kubota
Head toward Java 14 and Java 15
by
Yuji Kubota
オンライン会議と音声認識
by
Yuji Kubota
Head toward Java 13 and Java 14 #jjug
by
Yuji Kubota
Catch up Java 12 and Java 13
by
Yuji Kubota
Migration Guide from Java 8 to Java 11 #jjug
by
Yuji Kubota
Java 10でぼくたちの生活はどう変わるの?
by
Yuji Kubota
Project Jigsaw #kanjava
by
Yuji Kubota
Java 9 and Future #jjug
by
Yuji Kubota
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
by
Yuji Kubota
Prepare for Java 9 #jjug
by
Yuji Kubota
jcmd #javacasual
by
Yuji Kubota
JavaOne 2016 Java SE Feedback #jjug #j1jp
by
Yuji Kubota
OpenJDK コミュニティに参加してみよう #jjug
by
Yuji Kubota
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
by
Yuji Kubota
JavaOne 2015 JDK Update (Jigsaw) #j1jp
by
Yuji Kubota
OpenJDK トラブルシューティング #javacasual
by
Yuji Kubota
HeapStats @ Seasar Conference 2015 LT
by
Yuji Kubota
Recently uploaded
PDF
FOSS4G Hokkaido - QFieldをランナーのために活用した - QField for runners
by
Raymond Lay
PPTX
「Drupal SDCについて紹介」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
PPTX
FOSS4G Japan 2025 - QGISでスムーズに地図を比較 - QMapCompareプラグインの紹介
by
Raymond Lay
PDF
FOSS4G Japan 2024 ハザードマップゲームの作り方 Hazard Map Game QGIS Plugin
by
Raymond Lay
PDF
「似ているようで微妙に違う言葉」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
PPTX
How to buy a used computer and use it with Windows 11
by
Atomu Hidaka
PDF
DX人材育成 サービスデザインで実現する「巻き込み力」の育て方 by Graat
by
Graat(グラーツ)
PDF
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川)
by
Yoshiki Shibukawa
FOSS4G Hokkaido - QFieldをランナーのために活用した - QField for runners
by
Raymond Lay
「Drupal SDCについて紹介」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
FOSS4G Japan 2025 - QGISでスムーズに地図を比較 - QMapCompareプラグインの紹介
by
Raymond Lay
FOSS4G Japan 2024 ハザードマップゲームの作り方 Hazard Map Game QGIS Plugin
by
Raymond Lay
「似ているようで微妙に違う言葉」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
How to buy a used computer and use it with Windows 11
by
Atomu Hidaka
DX人材育成 サービスデザインで実現する「巻き込み力」の育て方 by Graat
by
Graat(グラーツ)
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川)
by
Yoshiki Shibukawa
Introduction to Java 11: Support and JVM Features #jjug
1.
Java11:サポートとVM機能編 KUBOTAYuji(@sugarlife) JJUGNightSeminar2018/Oct
2.
Java11の「サポート」
3.
Disclaimer 解りやすくするためざっくり説明している箇所があります 発表者は5年以上OpenJDKのサポートを担当していた経験上、しば しば商用/本番環境でもOpenJDKを利用している前提で話をします Javaのサポート提供企業のいずれとも関係がなく、各企業のサポー ト内容詳細については各企業に問い合わせください
4.
本資料でのサポートの定義 開発サポート バグの修正 セキュリティ対応(脆弱性修正) 機能拡張、新機能開発を含まない維持管理開発 配信サポート バイナリの配信・提供 バグ・脆弱性修正を行ったアップデートの配信 一定期間だけ無償なケースもある 問合せサポート SLAが定められている問合せ対応(障害対応、性能問題等) コンサル 企業・団体独自の経験提供
5.
誰がやってるのか? 開発サポート OpenJDKコミュニティ Java11は現在は3年間の予定 独自Java開発企業・団体(ここではTCKを通ったもの) 配信サポート(一例、Java11に限定) Oracle,AzulSystems(Zulu,Zing),RedHat,IBM AdoptOpenJDK,各Linuxディストリビューション (Debian,Ubuntu,Fedora,Arch,etc) OpenJDKコミュニティは配信していない 問合せサポート バイナリ配信サポートの一部企業、およびその他の企業
6.
無償で使いたい人向けの結論 AdoptOpenJDKから入手しよう Java11の無償「配信サポート」期間が一番長い(4年間)
7.
想定問答集 つらつら説明されるよりは自身の問題として捉えると身に入りやすいの でこの形式で説明します
8.
OpenJDKってなに? オープンソース実装のJavaです。http://openjdk.java.net/ 多くの人が使っていたであろうOracleJDKのPublicUpdate(≒無償版)が Java11から提供されないので注目が集まりました コミュニティのリード役はOracleでパッチ投稿数も段違いです。 以前はOracleしかコミットできない部分もありましたが、現在は改善が 進められ、よりオープンなコミュニティへと前進しています
9.
OpenJDKはLTSを提供しないの? 本資料における「開発サポート」であればサポート期間は長い。Java9 や10は半年でしたがJava11は現時点で3年間の予定です。 今後より長くなる可能性もあります。前例としてJava6はOracleがメン テナンスリードを退役してからはRedHatがリードを務めてました。 「配信サポート」や「問合せサポート」は以前からやっておらず、今後 も予定はありません
10.
Oracleから無償なJava入手できないの? できます。 OracleOpenJDKと良く呼ばれるようになったOracle社がビルドした OpenJDKがhttp://jdk.java.netから無償で入手できます。 恐らく他と比較して最速で入手できますが、配信サポートは半年間(※)で す。(※:『オラクルの公式OpenJDKバイナリは6カ月でアップデートを終 了』の項参照) OpenJDKではない方のOracleJDKについては新しいライセンスで公開 されています。ライセンスを読んで利用する必要があります
11.
OpenJDKは商用で利用できる品質なの? DEFINITELYYES. 前例についてはこちらの資料も参考にしてください
12.
OpenJDKに乗り換えるのは簡単なの? 簡単です。 OracleJDKからOpenJDKのマイグレーションはあまり問題は起きにく いですが、証明書周りが若干ネックになるケースもあります。 大半はOpenJDKの実装というよりはライセンス関係の問題です。 なお、Java8からJava11のマイグレーションはOracleJDKでも OpenJDKでも等しく面倒です
13.
AdoptOpenJDKリリース遅れてるけど大丈夫? 大丈夫です。 元々サードパーティのOpenJDKはリリース後にテストなどをするのでマ イナーアップデートでも1‑2週間ぐらいは遅れます。 AdoptOpenJDKもリリース後からビルドやテストを実施してるので遅れ ることは必然です。Java11のリリース状況はここで確認できます。約一 週間ぐらいでリリースされました ちなみにOracleだけがほぼ同時に配信していました。0dayattackリスク を勘案する場合、OracleOpenJDKが選択肢に入ります
14.
JREって無くなったんでしょ? ※JRE:Java開発ツールキットなどを除いたJavaランタイム環境のみに限 定されたパッケージ、インストーラ、バイナリ Windows/MacOSは実質その通り。Linuxディストリビューションの OpenJDKは元々別パッケージで提供されているのでおそらく引き続き提 供される(全部は確認しておらず未リリースもあります) 例: openjdk-11-jre と
openjdk-11-jdk (Ubuntu等) 例: java-1.11.0-openjdk と java-1.11.0-openjdk-devel (Fedora,RHEL等) より軽量な java-1.11.0-openjdk-headless もある Javaの実行バイナリサイズを削減する手段はjlinkなどが別に用意されて いるので、コンテナ等ではそちらを利用すると良いでしょう
15.
JavaFXってなくなったんでしょ? いいえ。 正しくはOracleJDK同梱ではなくなりました。OpenJDKは昔から同梱 していません。OpenJDKにも同梱される流れを期待していたら同梱をや めてしまった... OpenJDKコミュニティ内にJavaFXのオープン実装であるOpenJFXのプ ロジェクトがあります。バイナリはこちら(openjfx.io)からダウンロード できます。
16.
Javaって有償になったんでしょ? いいえ。 OracleJDKの「バイナリ配信サポート」が有償になりました。Oracleは この代替として「OracleOpenJDK」を提供しています。
17.
いつまでにJava11に乗り換えるべきか? Java8の「配信サポート」期限が切れる前に乗り換えましょう OracleJDK: 有償:2025/3 無償(PublicUpdate):2019/1(個人向けは2020/12) RHELのOpenJDK:2023/6 AzulSystems: ZuluEnterprise:2026/3 Zing:2025/3 IBMJava:2022/4 参考:次LSTのJava17は2021/9リリース予定
18.
すぐにJava12に乗り換える必要あるんでしょ? ないです。※発表者の個人的観点です 仕事であればOpenJDKの開発サポートが短いバージョンは無視してOK 個人であれば好き好き。私はJava12を使ってます
19.
何を使うべきか? ※発表者の個人的観点です 基本は予算と要件に合わせて選択する 無償でバイナリ配信サポートなら「AdoptOpenJDK」かLinuxディ ストリビューション提供パッケージ 4年以上のバイナリ配信サポートなら有償サポートを買う クラウド利用者は利用パッケージのサポート内容に依存する
20.
サポート要らなくない? ※発表者の個人的観点です 多くの場合、最低限必要なのは配信サポートです。 無償であればAdoptOpenJDKが4年間のサポート予定なので、次のLTS であり3年後にリリース予定のJava17にマイグレーションする猶予が1年 あります。 有償であれば8年間のサポート提供する企業もあり、より猶予がありま す。 問合せサポートは組織と予算とSLAに依存します。不要であれば不要で しょうし、組織内でエース級を育てるのもアリです。エース級は外にも 余り居ません。 開発サポートはOSSですので誰でも開発に参加できます。組織立って参 加できればそれが最善です。OpenJDKを元に独自JDKを開発する企業も あります
21.
Java11の「VM機能」
22.
JEP330:LaunchSingle‑FileSource‑Code Programs javac でコンパイルして java
で実行するのが基本だった スクリプト言語のようにソースコードを直接実行する形式を条件付 きで対応 source‑filemodeと呼ばれる
23.
単体ファイルの実行 Javaソースファイルを直接 java コマンドで実行する java
Hoge.java 制約条件 1つのJavaファイルで完結してる ソース内で最初に出現するトップレベルクラスが main(String[]) を持つ
24.
良い例 public class HelloWorld
{ public static void main(String[] args) { System.out.println("Hello World."); } } $ docker run --rm -it -v $(pwd)/src:/src openjdk:11-jdk ¥ java /src/Test.java Hello World.
25.
悪い例 public class Hoge
{} public class Fail { public static void main(String[] args) { System.out.println("Fail"); } } $ docker run --rm -it -v $(pwd)/src:/src openjdk:11-jdk ¥ java /src/Fail.java error: can't find main(String[]) method in class: Hoge
26.
スクリプト化 Javaソースをスクリプトのように扱う ./Hoge.java 制約条件 ファイル冒頭に実行するJavaを指定する #!<JAVA_HOMEフルパス>/bin/java --source 11 --source
でバージョン指定も必須 それ以外は単体ファイルと一緒
27.
良い例 #!/usr/lib/jvm/java-11-openjdk-amd64/bin/java --source 11 public
class Hoge { public static void main(String[] args) { System.out.println("Hello World by shellbang"); } } $ docker run --rm -it -v $(pwd)/src:/src openjdk:11-jdk ¥ /src/test.sh Hello World by shellbang
28.
どうやってるの? 1.Source‑Launcherクラスが起動 2.source‑filemodeで指定したクラスをコンパイル 3.インメモリに展開 4.クラスローダでロード カスタムクラスローダでロード後アプリケーションクラスロー ダに委譲 つまりアプリケーションクラスパスに含めたクラス群から、指 定したクラスは参照できない 5. main(String[]) を発火
29.
JEP328:FlightRecorder 最高峰のプロファイラ OracleJDK商用機能の一つがオープンソース化
30.
できること ボトルネック調査 GC、同期処理、I/O処理、メソッド毎のCPU時間など 収集可能な情報の例 OS:メモリ、CPU、プロセス情報、nativeライブラリ情報 JVM:起動オプション、GC設定、メソッドプロファイリング、 ヒープメモリ状況 JDKライブラリ:ソケットIO、ファイルIO、エラー情報、モジ ュール情報 柔軟なイベント収集・監視方法 アプリケーション開始から終了までの全情報をダンプ -XX:StartFlightRecording=dumponexit=true カスタムイベントを作成して独自情報を収集 jdk.jfr.Event 等を利用する(OracleJDKでの実装例)
31.
注意点 FlightRecorderはツールではなくてJVMの情報収集機能 可視化にはJDKMissionControlのバージョン7以降が別に必 要。これは同梱されてない JMCもFlightRecorderと同時にオープンソース化した OracleJDKのオプション構成から変更されているので流用不可
32.
JEP318:Epsilon:ANo‑OpGarbageCollector (Experimental) 何もしないメモリアロケータ -XX:+UseEpsilonGC
33.
No‑OpGC GCは不要メモリを回収するのが仕事ですが、EpsilonGCは通称「no‑op GC」と呼ばれる、メモリ回収を行わないGCです。 Javaアプリケーションに割り当てたヒープサイズを超えて使用しようと した場合ただちにメモリエラー(OutOfMemoryError)になります。
34.
注意点1 通常はJVMにメモリ管理を任せているため、意図しないメモリフットプ リントの増大や負荷が多少なりとも発生します。EpsilonGCはこの影響 を極力無視できるようにすることを目的としており、プロダクションで はなく主に開発や研究/実験の目的で利用されることを想定していま す。JITとか。 System.gc() も当然動きません。
35.
注意点2 このGCは限定的に「使える」。ただし、 ヒープとスタックの違い ガベージを生成しないオブジェクトとは何か TLABサイズがパフォーマンスに影響する EpsilonGCはアロケート方法が独自 自分のアプリケーションのライフサイクルとヒープサイズ などを把握した上で使うことが望ましい。なおExperimentalです。
36.
JEP333:ZGC:AScalableLow‑LatencyGarbage Collector(Experimental) PauselessGC -XX:+UseZGC
37.
PauselessGC 今までのGCはヒープサイズやライブセット数に比例して完全停止 時間(Stop‑The‑World,STW)が長くなる問題があった STWをRootScanのみに限定することでこれを解決した GC各処理の徹底的な並列化、他 ColoredPointers等よるロードバリア処理改善 Coloredpointer:マーク状態等を表現 データ構造やページング処理等の工夫も とはいえconcurrentclassunloadingがまだ未実装 世代別GCではない等、従来GCとアルゴリズムが大きく異なる
38.
注意点1 64bit限定 ColoredPointersが64bit前提です 仮想メモリを利用している CompressedOopsもサポートしてません レイアウトは ZBitField を追いかけてみよう 開発動機的にも32bitサポートは望み薄 Linux限定 シンプルにLinux前提の実装がちょくちょくある 需要があれば他も対応するらしい
39.
注意点2 現時点ではExperimentalであり、本番/商用で使うべきではないです。使 う場合、 仕様変更の追跡が必要 普通に変更がガンガン入ってる クラスアンローディング周りは確実に(大規模)変更が入る LargePagesやNUMAなどのメモリ効率性に関わる設定や監視も必 要 小さいヒープなら関係ないが、その場合既存GCで良い などを把握した上で使うことが望ましい。
40.
Question? KUBOTAYuji(@sugarlife)
Download