SlideShare a Scribd company logo
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 Groovy
Yasuharu Hayami
 
Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編Groovyスクリプト"再"入門 起動編
Groovyスクリプト"再"入門 起動編
Yasuharu Hayami
 
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
LINE Corporation
 
今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!今更GWTで遊ぶぜ!
今更GWTで遊ぶぜ!
Daisuke Kamikawa
 
JsonSlurperの話
JsonSlurperの話JsonSlurperの話
JsonSlurperの話
Yasuharu Hayami
 
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 impression
OgataAyaka
 
ぼっちーむ開発
ぼっちーむ開発ぼっちーむ開発
ぼっちーむ開発
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

Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 

Recently uploaded (8)

Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 

20171110 fun-tech #5 g1 gc