SlideShare a Scribd company logo
1 of 24
Download to read offline
G1GCのG1とはこれいかに!
~fun-tech meetup #5
出ましたJava9記念 Javaのあれこれ入門編~
(2017/11/10)@kitaji0306
さらっと自己紹介(通称:キタジー)
● 株式会社オープンストリーム
○ ITサービスマネジメント本部
■ システムライフサイクルマネジメント部
● Javaエンジニア
○ 一時期 インフラエンジニア
■ OracleのインストールやRACの構築等
● OORer
○ ONE OK ROCKer
■ ワンオク好き
あじぇんだ
● GCとは
● Javaの主なGC
● G1GCの特徴
● まとめ
そうだ JJUG CCC 2017 FALL 行こう
2017/11/18(土)
GCとは
GCとは
● ガベージコレクション
● メモリのお掃除やさん
● JavaはJVMがお掃除やさんをちゃんと雇ってるんです
※画像はgeechsマガジンさんのHPから拝借
もしGCが無かったら
● 掃除しなくてゴミ部屋になっちゃったり
○ メモリーリーク
● 自分でゴミ掃除したらゴミ以外も捨てちゃったり
○ 不具合!!!
● 怖くてゴミ出せない!!
※画像はgeechsマガジンさんのHPから拝借
STW(GCを語る上で外せない言葉)
● Stop the Worldの略
● Javaのスレッドが止まる
● アプリケーションが止まる
※画像は。。。
Javaの主なGC
Java(HotSpot)における主なGCの種類
● シリアルGC
● パラレルGC
● CMSGC
● G1GC
GCあるある
● GCの種類ってNewとかOldとか世代別のことでしょ?
○ 世代別GCもGCの方式の一つです
● メジャーGC(Full GC)中はSTWなんでしょ?
○ そうとは限らない
※画像は日本サード・パーティさんの HPから拝借
シリアルGC
● 名前の通りシングルスレッドでGC!
● 32bitでシングルコアのJava8以前ではデフォルト
○ もうそんな環境なかなかないと思いますが。。。
○ あえて指定しないとお目にかかれないのでは。。。
● STWが長い
※画像は日本サード・パーティさんの HPから拝借
パラレルGC
● 64bitのJava8以前ではデフォルト
● STWがシリアルGCよりは短い
● 多分、今Javaで一番多く利用されているGCだと
※画像は日本サード・パーティさんの HPから拝借
CMSGC(Java1.4.1から)
● コンカレント・マーク・スイープ
● アプリケーションとGCが同時に動いてる!
● STWがパラレルよりさらに短い
※画像は日本サード・パーティさんの HPから拝借
コンカレント?マーク?スイープ?
● マーク
○ まだ生きていると思われるオブジェクトにしるし
● スイープ
○ しるしのないオブジェクトは死亡
● コンカレント
○ それらを(アプリケーションと)平行してやるよ
G1GC(Java7から)
● Java9からデフォルトのGCとなった
● 詳細は後で説明するよ
※画像は日本サード・パーティさんの HPから拝借
ここでちょっと寄り道
自分のプロジェクトで
はどんなGCが利用さ
れているにゃ?
G1GCの特徴
こんな特徴あるよ
● ゴミの多いところを予測して重点処理(収集と圧縮)
● 細かい単位(リージョン)の扱いで断片化しずらい
○ その点がCMSGCが非推奨となった理由?
● STWを最大停止時間で(ある程度)制御
○ MaxGCPauseMillis(デフォルトは200ms)
※画像は日本サード・パーティさんの HPから拝借
G1GCの光と影
● 光
○ STWが短い
■ 世界は殆ど止まらない!
○ 大容量ヒープ割り当てのオーバーヘッドが小
■ 64bitの広大なメモリ空間が効率よく使える!
● 影
○ 割り当てるメモリが多くないと効果が薄い?
■ マイクロなサービスには不向き!?
○ 処理が細かく多いのでCPU使用率が高くなる
■ アプリケーションのスループットに影響も!?
G1GCの使いどころ
● ヒープサイズが大きい(6GB以上)
● ほぼ一時停止しないでほしい環境(500ms以内)
● CMSGCやパラレルGCを利用していて下記のような状態
○ ライブオブジェクトが50%を占める
○ オブジェクトの割当て率、昇格率が大きく変化する
○ STWが0.5秒以上かかる
※オラクルのG1GCのページに指針が出ています
まとめ
GCについて
● Java9を利用するならG1GCのアルゴリズムは抑えよう
● 巨大なヒープを利用しつつ短いSTW万歳
● CMSGCサヨウナラ
G1GCのG1は細かいゴミ処理を優先した
ガベージファースト
それよりも言いたいこと…
みなさん
次は是非喋る側に!!
大変な事もあるけど
きっと身になります!
ご清聴いただき
ありがとうございました!

More Related Content

What's hot

今から始めるApache Groovy
今から始めるApache Groovy今から始めるApache Groovy
今から始めるApache GroovyYasuharu Hayami
 
Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編Yasuharu Hayami
 
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話LINE Corporation
 
GroovyのJSONで日付・時刻を扱う
GroovyのJSONで日付・時刻を扱うGroovyのJSONで日付・時刻を扱う
GroovyのJSONで日付・時刻を扱うYasuharu Hayami
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + NashornTakuya Ueda
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」Muyuu Fujita
 
Java event impression
Java event impressionJava event impression
Java event impressionOgataAyaka
 
ぼっちーむ開発
ぼっちーむ開発ぼっちーむ開発
ぼっちーむ開発yowasou
 
Groovyクイズ(計算編)
Groovyクイズ(計算編)Groovyクイズ(計算編)
Groovyクイズ(計算編)Yasuharu Hayami
 
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)parrotstudio
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩Ayana Yokota
 

What's hot (13)

今から始めるApache Groovy
今から始めるApache Groovy今から始めるApache Groovy
今から始めるApache Groovy
 
Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編
 
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
 
今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!
 
JsonSlurperの話
JsonSlurperの話JsonSlurperの話
JsonSlurperの話
 
GroovyのJSONで日付・時刻を扱う
GroovyのJSONで日付・時刻を扱うGroovyのJSONで日付・時刻を扱う
GroovyのJSONで日付・時刻を扱う
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + Nashorn
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
 
Java event impression
Java event impressionJava event impression
Java event impression
 
ぼっちーむ開発
ぼっちーむ開発ぼっちーむ開発
ぼっちーむ開発
 
Groovyクイズ(計算編)
Groovyクイズ(計算編)Groovyクイズ(計算編)
Groovyクイズ(計算編)
 
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
 
Gitはじめの一歩
Gitはじめの一歩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...論文紹介: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論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田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 DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介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...論文紹介: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論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman 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.pdfTSAL 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」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

20171110 fun-tech #5 g1 gc