Submit Search
Upload
20171110 fun-tech #5 g1 gc
•
0 likes
•
281 views
Y
Yu Kitajima
Follow
Java9でG1GCがデフォルトのGCになったことを踏まえて、GCの基礎的なお話しから、G1GCの特徴などを簡単に記載しています。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 24
Download now
Download to read offline
Recommended
Crystal 勉強会 #5 in 渋谷 発表資料
Crystal 勉強会 #5 in 渋谷 発表資料
at grandpa
Crystalを触り始めてから起こったこと
Crystalを触り始めてから起こったこと
at grandpa
Task and Time monitoring with Backlog and Toggl
Task and Time monitoring with Backlog and Toggl
Yukiya Hayashi
Shibyra trac#13 前説
Shibyra trac#13 前説
riskrisk
RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気
Sea Mountain
PhpStormとGrunt.jsで作るCakePHP快適開発環境
PhpStormとGrunt.jsで作るCakePHP快適開発環境
kamiyam .
GDDでPlayNを見てゾクっとしたなど
GDDでPlayNを見てゾクっとしたなど
Takao Sumitomo
JavaとScalaとGroovyと
JavaとScalaとGroovyと
irof N
Recommended
Crystal 勉強会 #5 in 渋谷 発表資料
Crystal 勉強会 #5 in 渋谷 発表資料
at grandpa
Crystalを触り始めてから起こったこと
Crystalを触り始めてから起こったこと
at grandpa
Task and Time monitoring with Backlog and Toggl
Task and Time monitoring with Backlog and Toggl
Yukiya Hayashi
Shibyra trac#13 前説
Shibyra trac#13 前説
riskrisk
RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気
Sea Mountain
PhpStormとGrunt.jsで作るCakePHP快適開発環境
PhpStormとGrunt.jsで作るCakePHP快適開発環境
kamiyam .
GDDでPlayNを見てゾクっとしたなど
GDDでPlayNを見てゾクっとしたなど
Takao Sumitomo
JavaとScalaとGroovyと
JavaとScalaとGroovyと
irof N
今から始めるApache Groovy
今から始めるApache Groovy
Yasuharu Hayami
Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編
Yasuharu Hayami
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
LINE Corporation
今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!
Daisuke Kamikawa
JsonSlurperの話
JsonSlurperの話
Yasuharu Hayami
GroovyのJSONで日付・時刻を扱う
GroovyのJSONで日付・時刻を扱う
Yasuharu Hayami
GopherJS + Nashorn
GopherJS + Nashorn
Takuya Ueda
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
Muyuu Fujita
Java event impression
Java event impression
OgataAyaka
ぼっちーむ開発
ぼっちーむ開発
yowasou
Groovyクイズ(計算編)
Groovyクイズ(計算編)
Yasuharu Hayami
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio
Gitはじめの一歩
Gitはじめの一歩
Ayana Yokota
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
More Related Content
What's hot
今から始めるApache Groovy
今から始めるApache Groovy
Yasuharu Hayami
Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編
Yasuharu Hayami
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
LINE Corporation
今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!
Daisuke Kamikawa
JsonSlurperの話
JsonSlurperの話
Yasuharu Hayami
GroovyのJSONで日付・時刻を扱う
GroovyのJSONで日付・時刻を扱う
Yasuharu Hayami
GopherJS + Nashorn
GopherJS + Nashorn
Takuya Ueda
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
Muyuu Fujita
Java event impression
Java event impression
OgataAyaka
ぼっちーむ開発
ぼっちーむ開発
yowasou
Groovyクイズ(計算編)
Groovyクイズ(計算編)
Yasuharu Hayami
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio
Gitはじめの一歩
Gitはじめの一歩
Ayana Yokota
What's hot
(13)
今から始めるApache Groovy
今から始めるApache Groovy
Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!
JsonSlurperの話
JsonSlurperの話
GroovyのJSONで日付・時刻を扱う
GroovyのJSONで日付・時刻を扱う
GopherJS + Nashorn
GopherJS + Nashorn
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
Java event impression
Java event impression
ぼっちーむ開発
ぼっちーむ開発
Groovyクイズ(計算編)
Groovyクイズ(計算編)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
Gitはじめの一歩
Gitはじめの一歩
Recently uploaded
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Recently uploaded
(10)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
20171110 fun-tech #5 g1 gc
1.
G1GCのG1とはこれいかに! ~fun-tech meetup #5 出ましたJava9記念
Javaのあれこれ入門編~ (2017/11/10)@kitaji0306
2.
さらっと自己紹介(通称:キタジー) ● 株式会社オープンストリーム ○ ITサービスマネジメント本部 ■
システムライフサイクルマネジメント部 ● Javaエンジニア ○ 一時期 インフラエンジニア ■ OracleのインストールやRACの構築等 ● OORer ○ ONE OK ROCKer ■ ワンオク好き
3.
あじぇんだ ● GCとは ● Javaの主なGC ●
G1GCの特徴 ● まとめ そうだ JJUG CCC 2017 FALL 行こう 2017/11/18(土)
4.
GCとは
5.
GCとは ● ガベージコレクション ● メモリのお掃除やさん ●
JavaはJVMがお掃除やさんをちゃんと雇ってるんです ※画像はgeechsマガジンさんのHPから拝借
6.
もしGCが無かったら ● 掃除しなくてゴミ部屋になっちゃったり ○ メモリーリーク ●
自分でゴミ掃除したらゴミ以外も捨てちゃったり ○ 不具合!!! ● 怖くてゴミ出せない!! ※画像はgeechsマガジンさんのHPから拝借
7.
STW(GCを語る上で外せない言葉) ● Stop the
Worldの略 ● Javaのスレッドが止まる ● アプリケーションが止まる ※画像は。。。
8.
Javaの主なGC
9.
Java(HotSpot)における主なGCの種類 ● シリアルGC ● パラレルGC ●
CMSGC ● G1GC
10.
GCあるある ● GCの種類ってNewとかOldとか世代別のことでしょ? ○ 世代別GCもGCの方式の一つです ●
メジャーGC(Full GC)中はSTWなんでしょ? ○ そうとは限らない ※画像は日本サード・パーティさんの HPから拝借
11.
シリアルGC ● 名前の通りシングルスレッドでGC! ● 32bitでシングルコアのJava8以前ではデフォルト ○
もうそんな環境なかなかないと思いますが。。。 ○ あえて指定しないとお目にかかれないのでは。。。 ● STWが長い ※画像は日本サード・パーティさんの HPから拝借
12.
パラレルGC ● 64bitのJava8以前ではデフォルト ● STWがシリアルGCよりは短い ●
多分、今Javaで一番多く利用されているGCだと ※画像は日本サード・パーティさんの HPから拝借
13.
CMSGC(Java1.4.1から) ● コンカレント・マーク・スイープ ● アプリケーションとGCが同時に動いてる! ●
STWがパラレルよりさらに短い ※画像は日本サード・パーティさんの HPから拝借
14.
コンカレント?マーク?スイープ? ● マーク ○ まだ生きていると思われるオブジェクトにしるし ●
スイープ ○ しるしのないオブジェクトは死亡 ● コンカレント ○ それらを(アプリケーションと)平行してやるよ
15.
G1GC(Java7から) ● Java9からデフォルトのGCとなった ● 詳細は後で説明するよ ※画像は日本サード・パーティさんの
HPから拝借
16.
ここでちょっと寄り道 自分のプロジェクトで はどんなGCが利用さ れているにゃ?
17.
G1GCの特徴
18.
こんな特徴あるよ ● ゴミの多いところを予測して重点処理(収集と圧縮) ● 細かい単位(リージョン)の扱いで断片化しずらい ○
その点がCMSGCが非推奨となった理由? ● STWを最大停止時間で(ある程度)制御 ○ MaxGCPauseMillis(デフォルトは200ms) ※画像は日本サード・パーティさんの HPから拝借
19.
G1GCの光と影 ● 光 ○ STWが短い ■
世界は殆ど止まらない! ○ 大容量ヒープ割り当てのオーバーヘッドが小 ■ 64bitの広大なメモリ空間が効率よく使える! ● 影 ○ 割り当てるメモリが多くないと効果が薄い? ■ マイクロなサービスには不向き!? ○ 処理が細かく多いのでCPU使用率が高くなる ■ アプリケーションのスループットに影響も!?
20.
G1GCの使いどころ ● ヒープサイズが大きい(6GB以上) ● ほぼ一時停止しないでほしい環境(500ms以内) ●
CMSGCやパラレルGCを利用していて下記のような状態 ○ ライブオブジェクトが50%を占める ○ オブジェクトの割当て率、昇格率が大きく変化する ○ STWが0.5秒以上かかる ※オラクルのG1GCのページに指針が出ています
21.
まとめ
22.
GCについて ● Java9を利用するならG1GCのアルゴリズムは抑えよう ● 巨大なヒープを利用しつつ短いSTW万歳 ●
CMSGCサヨウナラ G1GCのG1は細かいゴミ処理を優先した ガベージファースト
23.
それよりも言いたいこと… みなさん 次は是非喋る側に!! 大変な事もあるけど きっと身になります!
24.
ご清聴いただき ありがとうございました!
Download now