Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
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,487 views
Introduction to Java 11: Support and JVM Features #jjug
Slide for JJUG Night Seminar 2018/Oct
Technology
◦
Read more
12
Save
Share
Embed
Embed presentation
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
Recommended
PDF
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
by
Takahiro YAMADA
PDF
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
by
NTT DATA Technology & Innovation
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PDF
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
Always on 可用性グループ 構築時のポイント
by
Masayuki Ozawa
PDF
Sql server 2016 always on 可用性グループ new features
by
Masayuki Ozawa
PDF
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
by
Insight Technology, Inc.
PDF
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
by
Takahiro YAMADA
PDF
そんなトランザクションマネージャで大丈夫か?
by
takezoe
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
PDF
Mavenの真実とウソ
by
Yoshitaka Kawashima
PPTX
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
by
Shinji Takao
PDF
MQTTとAMQPと.NET
by
terurou
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PPTX
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
by
Norito Agetsuma
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
PDF
スマートフォン向けサービスにおけるサーバサイド設計入門
by
Hisashi HATAKEYAMA
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
PDF
ClassLoader Leak Patterns
by
nekop
PDF
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
PDF
NetflixにおけるPresto/Spark活用事例
by
Amazon Web Services Japan
PDF
DBスキーマもバージョン管理したい!
by
kwatch
PDF
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
by
オラクルエンジニア通信
PDF
これからのJDK/JVM 何を選ぶ?どう選ぶ?
by
Takahiro YAMADA
More Related Content
PDF
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
by
Takahiro YAMADA
PDF
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
by
NTT DATA Technology & Innovation
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PDF
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
Always on 可用性グループ 構築時のポイント
by
Masayuki Ozawa
PDF
Sql server 2016 always on 可用性グループ new features
by
Masayuki Ozawa
PDF
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
by
Insight Technology, Inc.
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
by
Takahiro YAMADA
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
by
NTT DATA Technology & Innovation
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Always on 可用性グループ 構築時のポイント
by
Masayuki Ozawa
Sql server 2016 always on 可用性グループ new features
by
Masayuki Ozawa
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
by
Insight Technology, Inc.
What's hot
PDF
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
by
Takahiro YAMADA
PDF
そんなトランザクションマネージャで大丈夫か?
by
takezoe
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
PDF
Mavenの真実とウソ
by
Yoshitaka Kawashima
PPTX
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
by
Shinji Takao
PDF
MQTTとAMQPと.NET
by
terurou
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PPTX
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
by
Norito Agetsuma
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
PDF
スマートフォン向けサービスにおけるサーバサイド設計入門
by
Hisashi HATAKEYAMA
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
PDF
ClassLoader Leak Patterns
by
nekop
PDF
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
PDF
NetflixにおけるPresto/Spark活用事例
by
Amazon Web Services Japan
PDF
DBスキーマもバージョン管理したい!
by
kwatch
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
by
Takahiro YAMADA
そんなトランザクションマネージャで大丈夫か?
by
takezoe
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
Mavenの真実とウソ
by
Yoshitaka Kawashima
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
by
Shinji Takao
MQTTとAMQPと.NET
by
terurou
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
by
Norito Agetsuma
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
スマートフォン向けサービスにおけるサーバサイド設計入門
by
Hisashi HATAKEYAMA
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
ClassLoader Leak Patterns
by
nekop
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
NetflixにおけるPresto/Spark活用事例
by
Amazon Web Services Japan
DBスキーマもバージョン管理したい!
by
kwatch
Similar to Introduction to Java 11: Support and JVM Features #jjug
PDF
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
by
オラクルエンジニア通信
PDF
これからのJDK/JVM 何を選ぶ?どう選ぶ?
by
Takahiro YAMADA
PDF
JDK 新しいリリースモデル解説 (ver. 2.2)
by
オラクルエンジニア通信
PDF
JDK: 新しいリリースモデル解説(ver.2.1)
by
オラクルエンジニア通信
PDF
JDK: 新しいリリースモデル解説(ver.2.0)
by
オラクルエンジニア通信
PDF
JDK: 新しいリリースモデル解説
by
オラクルエンジニア通信
PDF
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
by
オラクルエンジニア通信
PDF
JDK:新しいリリースモデル解説 @ 熊本・福岡
by
オラクルエンジニア通信
PDF
Developer Festa Sapporo講演資料:Java最新動向とこれからの活用
by
オラクルエンジニア通信
PDF
JDK:新しいリリースモデル解説 @ 岡山・広島
by
オラクルエンジニア通信
PDF
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
by
Takashi Ito
PDF
20190202 jdk new_release_model_sendai
by
オラクルエンジニア通信
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
by
オラクルエンジニア通信
これからのJDK/JVM 何を選ぶ?どう選ぶ?
by
Takahiro YAMADA
JDK 新しいリリースモデル解説 (ver. 2.2)
by
オラクルエンジニア通信
JDK: 新しいリリースモデル解説(ver.2.1)
by
オラクルエンジニア通信
JDK: 新しいリリースモデル解説(ver.2.0)
by
オラクルエンジニア通信
JDK: 新しいリリースモデル解説
by
オラクルエンジニア通信
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
by
オラクルエンジニア通信
JDK:新しいリリースモデル解説 @ 熊本・福岡
by
オラクルエンジニア通信
Developer Festa Sapporo講演資料:Java最新動向とこれからの活用
by
オラクルエンジニア通信
JDK:新しいリリースモデル解説 @ 岡山・広島
by
オラクルエンジニア通信
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
by
Takashi Ito
20190202 jdk new_release_model_sendai
by
オラクルエンジニア通信
More from Yuji Kubota
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
by
Yuji Kubota
PDF
Unified JVM Logging
by
Yuji Kubota
PDF
Migration Guide from Java 8 to Java 11 #jjug
by
Yuji Kubota
PDF
OpenJDK トラブルシューティング #javacasual
by
Yuji Kubota
PDF
jcmd #javacasual
by
Yuji Kubota
PDF
Prepare for Java 9 #jjug
by
Yuji Kubota
PDF
Head toward Java 13 and Java 14 #jjug
by
Yuji Kubota
PDF
JavaOne 2016 Java SE Feedback #jjug #j1jp
by
Yuji Kubota
PDF
OpenJDK コミュニティに参加してみよう #jjug
by
Yuji Kubota
PDF
Java 10でぼくたちの生活はどう変わるの?
by
Yuji Kubota
PDF
Head toward Java 14 and Java 15 #LINE_DM
by
Yuji Kubota
PDF
JavaOne 2015 JDK Update (Jigsaw) #j1jp
by
Yuji Kubota
PDF
Head toward Java 14 and Java 15
by
Yuji Kubota
PDF
Catch up Java 12 and Java 13
by
Yuji Kubota
PDF
Head toward Java 15 and Java 16
by
Yuji Kubota
PDF
Head toward Java 16 (Night Seminar Edition)
by
Yuji Kubota
PPTX
Project Jigsaw #kanjava
by
Yuji Kubota
PPTX
Java 9 and Future #jjug
by
Yuji Kubota
PDF
オンライン会議と音声認識
by
Yuji Kubota
PPTX
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
by
Yuji Kubota
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
by
Yuji Kubota
Unified JVM Logging
by
Yuji Kubota
Migration Guide from Java 8 to Java 11 #jjug
by
Yuji Kubota
OpenJDK トラブルシューティング #javacasual
by
Yuji Kubota
jcmd #javacasual
by
Yuji Kubota
Prepare for Java 9 #jjug
by
Yuji Kubota
Head toward Java 13 and Java 14 #jjug
by
Yuji Kubota
JavaOne 2016 Java SE Feedback #jjug #j1jp
by
Yuji Kubota
OpenJDK コミュニティに参加してみよう #jjug
by
Yuji Kubota
Java 10でぼくたちの生活はどう変わるの?
by
Yuji Kubota
Head toward Java 14 and Java 15 #LINE_DM
by
Yuji Kubota
JavaOne 2015 JDK Update (Jigsaw) #j1jp
by
Yuji Kubota
Head toward Java 14 and Java 15
by
Yuji Kubota
Catch up Java 12 and Java 13
by
Yuji Kubota
Head toward Java 15 and Java 16
by
Yuji Kubota
Head toward Java 16 (Night Seminar Edition)
by
Yuji Kubota
Project Jigsaw #kanjava
by
Yuji Kubota
Java 9 and Future #jjug
by
Yuji Kubota
オンライン会議と音声認識
by
Yuji Kubota
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
by
Yuji Kubota
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,IBMAdoptOpenJDK,各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/6AzulSystems:ZuluEnterprise:2026/3Zing:2025/3IBMJava: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‑CodeProgramsjavac でコンパイルして 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.javaHello 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.javaerror: 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 11public
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.shHello 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‑OpGCGCは不要メモリを回収するのが仕事ですが、EpsilonGCは通称「no‑opGC」と呼ばれる、メモリ回収を行わないGCです。Javaアプリケーションに割り当てたヒープサイズを超えて使用しようとした場合ただちにメモリエラー(OutOfMemoryError)になります。
34.
注意点1通常はJVMにメモリ管理を任せているため、意図しないメモリフットプリントの増大や負荷が多少なりとも発生します。EpsilonGCはこの影響を極力無視できるようにすることを目的としており、プロダクションではなく主に開発や研究/実験の目的で利用されることを想定しています。JITとか。System.gc() も当然動きません。
35.
注意点2このGCは限定的に「使える」。ただし、ヒープとスタックの違いガベージを生成しないオブジェクトとは何かTLABサイズがパフォーマンスに影響するEpsilonGCはアロケート方法が独自自分のアプリケーションのライフサイクルとヒープサイズなどを把握した上で使うことが望ましい。なおExperimentalです。
36.
JEP333:ZGC:AScalableLow‑LatencyGarbageCollector(Experimental)PauselessGC-XX:+UseZGC
37.
PauselessGC今までのGCはヒープサイズやライブセット数に比例して完全停止時間(Stop‑The‑World,STW)が長くなる問題があったSTWをRootScanのみに限定することでこれを解決したGC各処理の徹底的な並列化、他ColoredPointers等よるロードバリア処理改善Coloredpointer:マーク状態等を表現データ構造やページング処理等の工夫もとはいえconcurrentclassunloadingがまだ未実装世代別GCではない等、従来GCとアルゴリズムが大きく異なる
38.
注意点164bit限定ColoredPointersが64bit前提です仮想メモリを利用しているCompressedOopsもサポートしてませんレイアウトは ZBitField を追いかけてみよう開発動機的にも32bitサポートは望み薄Linux限定シンプルにLinux前提の実装がちょくちょくある需要があれば他も対応するらしい
39.
注意点2現時点ではExperimentalであり、本番/商用で使うべきではないです。使う場合、仕様変更の追跡が必要普通に変更がガンガン入ってるクラスアンローディング周りは確実に(大規模)変更が入るLargePagesやNUMAなどのメモリ効率性に関わる設定や監視も必要小さいヒープなら関係ないが、その場合既存GCで良いなどを把握した上で使うことが望ましい。
40.
Question?KUBOTAYuji(@sugarlife)
Download
[8]
ページ先頭
©2009-2025
Movatter.jp