Mark And Compact

๋“ค์–ด๊ฐ€๋ฉฐ

์ตœ๊ทผ์— F-Lab ๋ฉ˜ํ† ๋ง ์‹œ๊ฐ„์— GC ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์„ ํ•˜๋ฉด์„œ ๋งˆํฌ์•ค ์Šค์œ•์„ ๋ง์”€๋“œ๋ ธ๋Š”๋ฐ, ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ๋„ˆ๋ฌด ์˜›๋‚ (?) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์…จ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์‹œ ์Šคํ„ฐ๋””๋ฅผ ํ•ด๋ณด์•˜๋Š”๋ฐ ์ •๋ง ๊ทธ๋Ÿฌํ•˜์˜€๋‹ค.

์ฐพ์•„๋ณด๋‹ค ์•Œ๊ฒŒ๋œ Mark And Compact ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ •๋ฆฌํ•œ๋‹ค.

Mark And Compact ๋Š” ๋ฌด์—‡์ผ๊นŒ

๋งˆํฌ์•ค์ปดํŒฉํŠธ๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.(๋ฌด์—‡์ด๋“  ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ ๋ฌธ์žฅ ์ •์˜๋ฅผ ํ†ตํ•ด์„œ ์ˆฒ์„ ์ •ํ™•ํ•˜๊ฒŒ ์ธ์‹ํ•œ๋‹ค. ๋ถ„๋ฅ˜์˜ ์˜๋ฏธ์ด๋‹ค.)

Mark ๋Š” ๋ฌด์—‡์ผ๊นŒ

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ "ํ™œ์„ฑ" ๊ฐ์ฒด(์ฐธ์กฐ๋˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด)๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งˆํฌ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

Compact ๋Š” ๋ฌด์—‡์ผ๊นŒ

์ผ๋‹จ Java GC ๋‚ด์—๋Š” Eden ์˜์—ญ์— Survivor ๊ฐ€ ๋‘˜ ์กด์žฌํ•œ๋‹ค(S0, S1). ์ฒ˜์Œ์— ํ•œ ์ชฝ์„ ์ผ๊ด„์ ์œผ๋กœ ์ฑ„์šฐ๋ฉด์„œ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ํ•œ ์ชฝ์ด ๊ฝ‰ ์ฐจ๊ฒŒ ๋˜๋ฉด Minor GC ๊ฐ€ ๋™์ž‘ํ•˜๋Š”๋ฐ ์ด ๋•Œ ๋‹ค๋ฅธ Survivor ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ํŒŒํŽธํ™” ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ํ• ๋‹นํ•ด์ค€๋‹ค. ์ด ๊ณผ์ •์„ ์ปดํŒฉํŠธ ๋ผ๊ณ  ์นญํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์„ ์—ฐ์†์ ์œผ๋กœ ํ˜•์„ฑํ•จ์œผ๋กœ์จ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ™œ์šฉ๋„๋ฅผ ๋†’ํžŒ๋‹ค.

Last updated