G1 GC vs Z GC

G1 GC๋ž€?

  • ์ด์ „์˜ GC๋Š” Young Generation, Old Generation ์˜์—ญ์ด ๊ณ ์ •์ ์ด์—ˆ๋‹ค

  • G1 GC๋Š” ๊ณ ์ •๋œ ์˜์—ญ์ด ์•„๋‹Œ ์ „์ฒด์ ์ธ heap ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋ฆฌ์ „์„ ๋ถ„๋ฆฌํ•œ๋‹ค

  • G1 GC๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐœ์ฒด์˜ ์˜์—ญ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์••์ถ•ํ•˜์—ฌ STW๋ฅผ ์ตœ์†Œํ™”ํ•˜์˜€๋‹ค

  • JDK 9๋ถ€ํ„ฐ๋Š” ๋””ํดํŠธ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค

G1 GC ๋™์ž‘์›๋ฆฌ?

  • initial mark : old region์—์„œ ์กด์žฌํ•˜๋Š” ๊ฐœ์ฒด๋“ค์ด ์ฐธ์กฐํ•˜๋Š” survivor region์„ ์ฐพ๋Š”๋‹ค

  • root region scan : initial mark์—์„œ ํ™•์ธํ•œ region์•ˆ์— ์žˆ๋Š” ๊ฐœ์ฒด๋ฅผ ๋งˆํ‚นํ•œ๋‹ค

  • concurrent mark : heap ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ „์ฒด์ ์œผ๋กœ ์Šค์บ”ํ•˜๋ฉด์„œ unrechable ๊ฐœ์ฒด์˜ region์„ ํ™•์ธํ•œ๋‹ค

  • remark : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฉˆ์ถ”๊ณ  ์ตœ์ข…์ ์œผ๋กœ GC ๋Œ€์ƒ์—์„œ ์ œ์™ธ๋  ๊ฐœ์ฒด๋ฅผ ์‹๋ณ„ํ•ด๋‚ธ๋‹ค

  • clean up : ์‚ด์•„ ์žˆ๋Š” ๊ฐœ์ฒด๊ฐ€ ๊ฐ€์žฅ ์ ์€ region์— ๋Œ€ํ•ด์„œ ๋ฏธ์‚ฌ์šฉ ๊ฐœ์ฒด๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค

  • copy : ์ œ๊ฑฐ๋˜์ง€ ์•Š๊ณ  region์— ์‚ด์•„๋‚จ์€ ๊ฐœ์ฒด๋“ค์€ ์ƒˆ๋กœ์šด region์— ๋ณต์‚ฌํ•˜๋ฉฐ compact ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค

ZGC๋Š” ๋ฌด์—‡์ด์ง€?

  • ZGC๋Š” ZPages๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๋Š” G1 GC์˜ Region๊ณผ ๋น„์Šทํ•œ ์˜์—ญ์˜ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•œ๋‹ค

  • G1 GC์˜ Region์˜ ํฌ๊ธฐ๋Š” ๊ณ ์ •์ด๊ณ , ZPages๋Š” ํฌ๊ธฐ๊ฐ€ 2์˜ ๋ฐฐ์ˆ˜๋กœ ๋™์ ์œผ๋กœ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

  • ZGC์˜ ์„ฑ๋Šฅ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 8MB ๋ถ€ํ„ฐ 16TB ์„ฑ๋Šฅ์˜ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

  • G1 GC์˜ compact ๊ณผ์ •์—์„œ ๊ธฐ์กด ๊ฐœ์ฒด์™€ ์ƒˆ๋กœ์šด region์— ๋ณต์‚ฌ๋œ ์ƒˆ๋กœ์šด ๊ฐœ์ฒด๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•œ๋‹ค

  • ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์šฉํ•  ์ˆ˜ ์žˆ๋Š” region์„ ํ™•๋ณดํ•ด์„œ ํ• ๋‹นํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋Š” ์ƒ๋‹นํ•œ ๋น„์šฉ์ด ๋“ ๋‹ค

  • ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ณ ์ž ZGC์˜ compact ๊ณผ์ •์€ ์ƒˆ๋กœ์šด region์„ ์ƒ์„ฑํ•œ ํ›„ ์‚ด์•„์žˆ๋Š” ๊ฐœ์ฒด๋“ค์„ ์ฑ„์šฐ๋„๋ก ๋™์ž‘ํ•œ๋‹ค

  • ZGC์˜ ๋ชฉํ‘œ๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ณ ๋น„์šฉ ์ž‘์—…์„ ๋™์‹œ ์ž‘์—…ํ•˜๊ณ  STW๋ฅผ 10ms๋ฅผ ๋ฏธ๋งŒ์œผ๋กœ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค

  • ๋‹จ ,ZGC๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 8MB ~ 16TB ์ •๋„๋กœ ๊ณ ์‚ฌ์–‘์˜ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค

ZGC๋Š” ๋™์ž‘์›๋ฆฌ๋Š”?

  • ZGC Heap์€ ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋‹ค์–‘ํ•œ ์‚ฌ์ด์ฆˆ์˜ ์˜์—ญ์ด ์—ฌ๋Ÿฌ๊ฐœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ZGC๊ฐ€ compaction๋œ ํ›„, ZPage๋Š” ZPageCache๋ผ ๋ถˆ๋ฆฌ๋Š” ์บ์‹œ์— ์‚ฝ์ž…๋œ๋‹ค.

  • ์บ์‹œ ์•ˆ์˜ ZPage๋Š” ์ƒˆ๋กœ์šด Heap ํ• ๋‹น์„ ์œ„ํ•ด ์žฌ์‚ฌ์šฉํ•  ์ค€๋น„๋ฅผ ํ•œ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ปค๋ฐ‹๊ณผ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๋Š” ์ž‘์—…์€ ๋น„์šฉ์ด ํฌ๊ธฐ์— ์บ์‹œ์˜ ์„ฑ๋Šฅ์— ์ค‘์š”ํ•œ ์˜ํ–ฅ์„ ๋ผ์นœ๋‹ค.

์ฐธ๊ณ 

Last updated