-
Notifications
You must be signed in to change notification settings - Fork 115
20210914 Garbage Collection
Seogeurim edited this page Sep 28, 2021
·
9 revisions
Garbage Collection์ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ ์ค ํ๋๋ก, ๋์ ์ผ๋ก ํ ๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์ค์์ ํ์์๊ฒ ๋ ์์ญ์ ํด์ ํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
ํ์ง๋ง ์ด ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๋จ์ ์ผ๋ก
- ์ฒซ์งธ, ์ด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ ์ง, ์ธ์ ํด์ ํ ์ง ๊ฒฐ์ ํ๋ ์ค๋ฒํค๋๊ฐ ์ผ์ด๋ฉ๋๋ค.
- ๋์งธ, ์ปฌ๋ ์ ์ด ์ผ์ด๋๋ ํ์ด๋ฐ์ด๋ ์ ์ ์๊ฐ์ ์์ธกํ๊ธฐ ์ด๋ ค์ ์ผ์์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ด ์ ์ง๋๊ณค ํฉ๋๋ค.
- ์ ์งธ, ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด์ ๋๋ ์์ ์ ์ ์ ์์ต๋๋ค.
์ด ๋จ์ ์ค ํ๊ฐ์ง๋ฅผ ์ ํด, ์์ ๋ง์ ์์ด๋์ด๋ก(์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ํ๋ ์ง, ์๊ณ ๋ฆฌ์ฆ์ ์ง๋ ์ง) ๋จ์ ์ ํด๊ฒฐํ๋ ๋ฐฉ์์ ์๋ฆฝํ์ฌ ์ค๋ช ํด์ฃผ์ธ์.
์ฒซ๋ฒ์งธ ๋จ์ ์ ๋ํ์ฌ
์ฐธ๊ณ : [Java] Garbage Collection(๊ฐ๋น์ง ์ปฌ๋ ์ )์ ์ฑ๋ฅ์ ๋์ด๋ ์ฝ๋ฉ ๋ฐฉ๋ฒ
์ด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ ์ง ๊ฒฐ์ ํ๋ ๋ถ๋ถ์ ์์ด์ ๊ฐ๋ฐ์์ ์ ์ฅ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๋ถ๋ถ์ ์๊ฐํด๋ณด์์ต๋๋ค. ์ธ์ด๋ Java์ ๋๋ค.
- Java Collection API๋ฅผ ์ฌ์ฉํ ๋, ๊ทธ ํฌ๊ธฐ๋ฅผ ์์ธกํ ์ ์๋ค๋ฉด ์์ฑ ์์ ์ง์ ์ค์ ํด์ฃผ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ฅผ ๋ค์ด ArrayList์ ๊ฒฝ์ฐ, ํฌ๊ธฐ๋ฅผ ์ค์ ํด์ฃผ์ง ์๋๋ค๋ฉด ์ ํด์ง ํฌ๊ธฐ์ ๋ฐฐ์ด์ ์๋ก ์์ฑํ๊ณ ๋ถ์ฌ์ฃผ๋ ์์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ฌ์ฉํ์ง ์๋ ํฌ๊ธฐ์ ๋ํด์๋ ๋ฐฐ์ด์ด ์์ฑ๋์ด ๊ฐ๋น์ง๊ฐ ๋ฐ์ํฉ๋๋ค.
- Stream์ ์ฌ์ฉํ์ฌ ์ผ์ ํ chunk ๋งํผ์ฉ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋๋ก ํฉ๋๋ค. ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฌ๋ค๋ฉด OutOfMemoryErrors๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ Stream์ ์ฌ์ฉํ์ฌ Buffer๋ฅผ ์ฌ์ฌ์ฉํจ์ผ๋ก์จ OutOfMemoryErrors๋ฅผ ๋ฐฉ์งํ๊ณ ๊ฐ๋น์ง์ ์์ฑ์ ์ต์ํํ ์ ์์ต๋๋ค.
- ๋ถ๋ณ์ฑ์ ํ์ฉํ์ฌ ์ฝ๋ฉํฉ๋๋ค. Java์์ ๊ฐ์ฒด๋ฅผ ๊ทธ๋๋ก ๋๊ฒจ์ฃผ๊ณ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋ฉ์ ํ๋ค๋ณด๋ฉด, ๊ทธ ๊ท๋ชจ๊ฐ ์ปค์ก์ ๋ ์ฌ๋ฌ ํจ์๋ค์ด ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ ์ํ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์ค์บํด์ผ ํ๋ ๊ฐ์ฒด์ ์๊ฐ ๋์ด๋ฉ๋๋ค. ๋ถ๋ณ์ฑ์ ์ฌ์ฉํ์ฌ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋ฉ์ ํ๋ฉด ์ค์บํด์ผ ํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ๊ณผ ๋น๋์๊ฐ ์ค์ด๋ค์ด ์ฑ๋ฅ์ ๋์ผ ์ ์์ต๋๋ค.