SlideShare una empresa de Scribd logo
1 de 27
GCについて cactusman
自己紹介 HN:cactusman(さぼてん)  年齢:0x1d  出身:関西  所属:java-ja,Wicket-ja 肩書き:Hudsonコミッタ
GCについてですが
読め!
注意事項 対象は初心者 マニアックなことは話しません。
アジェンダ GCについて 基本アルゴリズム HotSpotVMのGC
GCとは プログラム上で不要となったメモリをまとめる動作 メモリ領域上の不要なゴミを見つける ゴミを回収し、プログラマが再度利用できるようにする
一言で言うと
ルート ゴミ
GCを学ぶ意義 メモリ領域の効率的な使い方を意識 枯れない技術 1960~ 技術的に面白い(らしい)
JavaにおけるGC 「Java仮想マシン」(JVM)では実装依存 「Java仮想マシン仕様書 第2版」     第3章 Java仮想マシンの構造     冒頭に記述 今回のJVMのGCはHotSpotに ついて
GCの基本アルゴリズム マーク&スイープ 参照カウント コピー GCアルゴリズムはこの基本アルゴリズムの派生
マーク&スイープ ルート要素からたどれるオブジェクトをマークしていく マークのないオブジェクト(ゴミ)を回収する
マーク&スイープ メリット 実装が簡単 デメリット フラグメンテーション アローケーション速度 停止時間が長い
参照カウント 自身のオブジェクトが参照されている数のカウンタをもっている 参照される度に+1、参照が切れる度に-1される カウンタが0になった時点で解放される
参照カウント メリット 参照が切れたタイミングで解放処理が行える 最大停止時間が短い ポインタをたどる必要がない デメリット 循環参照を回収できない カウンタの値の増減処理が重い カウンタに多くのビットが必要 実装が煩雑
コピー コピー元のヒープをfrom-space、コピー先のヒープをto-spaceの二つの領域がある ルートからオブジェクトをたどりながら、オブジェクトをfromからtoへコピーする コピーが終わると、from内のオブジェクトをすべて捨てる
コピー メリット スループットがいい メモリ回収と同時にコンパクションを行える フラグメンテーションが起きない FreeList(ヒープの空き部屋リスト)を使わないため、allocate処理が早い デメリット ヒープ領域が余分に取る
HotSpotVMにおける世代別GC 世代別GCとは 「多くのオブジェクトは若くして死ぬ」という経験則 ヒープ領域を新世代、旧世代というように世代別にわける GCを実行するとオブジェクトは歳をとる ある閾値を超えるとオブジェクトは旧世代へと移動する 新世代領域を頻繁にGCする
Yang Eden Suvivor2 Tenured ヒープ領域 Suvivor1 Old
GCの種類 Scavenge GC コピーGC Full GC マーク&スイープGC
Scavenge GC
Scavenge GC
Scavenge GC
その他 Young領域に対するパラレルGC Old領域に対するパラレルGC Mostly Concurrent Mark & Sweep GC(M-CMS) ほとんどの過程を並列化 G1GC(Garbage-First GC)

Más contenido relacionado

Destacado

JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajoYuji Kubota
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Monica Beckwith
 
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_cccConcurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_cccYuji Kubota
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javaYuji Kubota
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Yuji Kubota
 
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjugYuji Kubota
 

Destacado (7)

GCが止まらない
GCが止まらないGCが止まらない
GCが止まらない
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajo
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
 
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_cccConcurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
 
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug
 

Más de cactusman

Jenkins勉強会 in 札幌 第二部
Jenkins勉強会 in 札幌 第二部Jenkins勉強会 in 札幌 第二部
Jenkins勉強会 in 札幌 第二部cactusman
 
Jenkins勉強会 in 札幌 第一部
Jenkins勉強会 in 札幌 第一部Jenkins勉強会 in 札幌 第一部
Jenkins勉強会 in 札幌 第一部cactusman
 
Hudson初心者向けデモ
Hudson初心者向けデモHudson初心者向けデモ
Hudson初心者向けデモcactusman
 
HudsonによるOss開発
HudsonによるOss開発HudsonによるOss開発
HudsonによるOss開発cactusman
 
頼れる執事があなたをサポート
頼れる執事があなたをサポート頼れる執事があなたをサポート
頼れる執事があなたをサポートcactusman
 
1000speakers#2-5 頼れる執事Hudson
1000speakers#2-5 頼れる執事Hudson1000speakers#2-5 頼れる執事Hudson
1000speakers#2-5 頼れる執事Hudsoncactusman
 
HudsonときどきMaven2
HudsonときどきMaven2HudsonときどきMaven2
HudsonときどきMaven2cactusman
 

Más de cactusman (8)

Jenkins勉強会 in 札幌 第二部
Jenkins勉強会 in 札幌 第二部Jenkins勉強会 in 札幌 第二部
Jenkins勉強会 in 札幌 第二部
 
Jenkins勉強会 in 札幌 第一部
Jenkins勉強会 in 札幌 第一部Jenkins勉強会 in 札幌 第一部
Jenkins勉強会 in 札幌 第一部
 
Jenkins
JenkinsJenkins
Jenkins
 
Hudson初心者向けデモ
Hudson初心者向けデモHudson初心者向けデモ
Hudson初心者向けデモ
 
HudsonによるOss開発
HudsonによるOss開発HudsonによるOss開発
HudsonによるOss開発
 
頼れる執事があなたをサポート
頼れる執事があなたをサポート頼れる執事があなたをサポート
頼れる執事があなたをサポート
 
1000speakers#2-5 頼れる執事Hudson
1000speakers#2-5 頼れる執事Hudson1000speakers#2-5 頼れる執事Hudson
1000speakers#2-5 頼れる執事Hudson
 
HudsonときどきMaven2
HudsonときどきMaven2HudsonときどきMaven2
HudsonときどきMaven2
 

Último

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 

Último (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

GCについて