โ JVM ์ํคํ ์ฒ

์ด๋ฏธ์ง ์ถ์ฒ: https://medium.com/java-for-beginners/understanding-java-virtual-machine-jvm-architecture-e68d1c611026
JVM ๊ตฌ์ฑ์์๋ ํฌ๊ฒ Class Loader, Runtime Data Area, Execution Engine, ๊ทธ๋ฆฌ๊ณ JNI์ Native method library๋ก ๊ตฌ์ฑ๋๋ค.
์๋ฐ ์ปดํ์ผ๋ฌ๊ฐ ์์ค์ฝ๋(.java)๋ฅผ ์ปดํ์ผํ์ฌ ๋ฐ์ดํธ์ฝ๋(.class)๋ก ๋ณํ์ํจ๋ค.
ํด๋์ค ๋ก๋๊ฐ ํ์ํ ์์ ์ ํด๋น ํด๋์ค์ ๋ฐ์ดํธ์ฝ๋(.class)๋ฅผ JVM์ Runtime Data Area์ ๋ก๋(์ ์ฌ)ํ๋ค.
JVM Execution engine์ ๋ก๋๋ ํด๋์ค์ ๋ฐ์ดํธ์ฝ๋๋ฅผ ํ ์ค์ฉ ํด์(interpret)ํ์ฌ ์คํํ๋ค.
(ํ์์ ๋ฐ๋ผ JIT Compiler๊ฐ ๋์ํ์ฌ ๋ฐ๋ณต์ ์ธ ์ฝ๋์ ๋ํด์๋ ๋ฏธ๋ฆฌ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ์ปดํ์ผ, ์บ์ฑํด๋๊ณ ํด์๊ณผ์ ์ ์๋ตํ๊ธฐ๋ ํ๋ค)
๐ JVM Runtime Data Area ์ข ๋ ์์ธํ ๋ณด๊ธฐ
Runtime Data Area๋, JVM์ด ์๋ฐ ํ๋ก๊ทธ๋จ์ ์ํํ๊ธฐ ์ํด OS๋ก๋ถํฐ ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค.
- Method area
- static zone๊ณผ non-static zone์ผ๋ก ๋๋๋ค.
- ํด๋์ค, ๋ณ์, ๋ฉ์๋, static ๋ณ์, ์์ ๋ฑ์ ๋ฐ์ดํธ์ฝ๋๋ค์ด ์ ์ฅ๋๋ค.
- ๋ชจ๋ Thread๊ฐ ๊ณต์ ํ๋ ์์ญ์ด๋ค.
- Heap area
- new ํค์๋๋ก ์์ฑ๋ ์ธ์คํด์ค์ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋๋ ์์ญ์ด๋ค.
- ๋ชจ๋ Thread๊ฐ ๊ณต์ ํ๋ ์์ญ์ด๋ค.
- Garbage Collection์ ๋์์ด ๋๋ค.
- Stack area
- ๋ฉ์๋ ๋ด์์ ์ฌ์ฉ๋๋ ๋งค๊ฐ๋ณ์, ์ง์ญ๋ณ์, ๋ฆฌํด๊ฐ ๋ฑ์ด ์ ์ฅ๋๋ ์์ญ์ด๋ค.
- ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉด ์คํ ํ๋ ์์ด ์์ฑ๋์ด call stack์ ์์ด๊ฒ ๋๋ค.
- Thread๋ง๋ค ํ๋์ฉ ๊ฐ์ง๊ณ ์๋ ์์ญ์ด๋ค.
- PC register
- ํ์ฌ ์ํ์ค์ธ JVM ๋ช ๋ น์ด์ ์ฃผ์๊ฐ์ด ์ ์ฅ๋๋ค.
- Thread๋ง๋ค ํ๋์ฉ ์์ฑ๋๋ค.
- Native method stack
- C๋ C++ ๋ฑ์ผ๋ก ๊ตฌํ๋ ๋ฉ์๋ ํธ์ถ์ ์ํด ํ ๋น๋๋ ๊ตฌ์ญ์ด๋ค.
โ GC๋?
Heap area๊ฐ Garbage Collection์ ๋์์ด ๋๋ค๊ณ ํ๋ค.
Heap area๊ฐ ๋ฌด์์ธ์ง๋ ์๊ฒ ๋๋ฐ, Garbage Collection์ด ๋๋์ฒด ๋ญ๊น?
Java์์๋ heap ์์ญ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๋ช ๋ น์ด๋ง ์กด์ฌํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ์ํ ์ด๋ ํ ์ฝ๋๋ ๋ฐ์ดํธ์ฝ๋๋ ์กด์ฌํ์ง ์๋๋ค.
Java heap ์์ญ์ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ ์ค๋ก์ง Garbage collection์ ํตํด์๋ง ์ํ๋๋ค.
Garbage Collection์ด๋, heap ์์ญ์์ ์ฐธ์กฐ๋์ง ์๋ ๊ฐ์ฒด (=garbage)๋ฅผ ์ ๊ฑฐํด ๊ฐ์ฉ ๊ณต๊ฐ์ ๋ง๋๋ ์์ ์ด๋ค.
GC๋ฅผ ํ๋ ์ด์ ๋ ํ์ ๋ heap ๊ณต๊ฐ์ ์ฌํ์ฉ์ ์ํด์์ด๋ค.
JVM specification์ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ GC๋ฅผ ํตํด์๋ง ์ด๋ฃจ์ด์ ธ์ผํ๋ค๋ ๊ฒ์ ๊ฐํ๊ฒ ์ ์ํ๊ณ ์๊ณ
๊ฐ JVM ๋ฒค๋์ฌ๋ค์ ์ด ์์น์ ๋ฐ๋ผ ๊ฐ๊ฐ์ GC๋ฅผ ๊ตฌํํ๊ณ ์๋ค.
๐ฅ GC ์ฅ์
- ๋ฉ๋ชจ๋ฆฌ ํด์ ๊ฐ ์๋ํ๋๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ๋งค๋ชจ๋ฆฌ ํด์ ๋ฅผ ํ ํ์๊ฐ ์๋ค.
๐ฅ GC ๋จ์
- Garbage Collection์ ๋ช ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ณด๋ค ์๋๊ฐ ๋๋ฆฌ๋ค.
- GC๊ฐ ์ผ์ด๋๋ ์๊ฐ ์ผ์ด๋๋ ์ง์ฐ ์๊ฐ์ผ๋ก ์ธํด ํ๋ก๊ทธ๋จ์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
โ JVM Heap area ๋ช ์ธ์ ์ค์ ๊ตฌํ
JVM specification์์๋ GC ๋ฟ๋ง์๋๋ผ heap ์์ญ์ ์ ๋ฐ์ ์ธ ๊ตฌ์ฑ์ ๋ํด์๋ ํน๋ณํ ์ ์๋ ๋ฐ ์๋ค.
JVM specification์์ heap์ ๋จ์ํ ์ธ์คํด์ค๋ array๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ด๋ผ๊ณ ๋ง ๋ช ์๋์ด ์๊ณ ,
heap์์ญ์ ๊ตฌ์ฑ์ ๋ํด์๋ JVM์ ๊ตฌํํ๋ ๋ฒค๋์ฌ๋ค์๊ฒ ์์ํ๊ณ ์๋ค.
JVM ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๋ํด์ ๊ฒ์ํ๋ฉด ๊ฐ๊ธฐ ๋ค๋ฅธ ์ค๋ช ๊ณผ ๊ทธ๋ฆผ์ด ๋ฑ์ฅํ๋ ์ด์ ๊ฐ ๋ฐ๋ก ์ด๊ฒ ๋๋ฌธ์ด๋ค!
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ JVM์ด๋ผ๊ณ ํ๋ Hotspot JVM์ Garbage Collector์, Heap ๊ตฌ์กฐ์ ๋ํด ๊ณต๋ถํด๋ณด์๋ค.
โ Hotspot JVM์ Heap ๊ตฌ์กฐ์ Garbage Collection
Hotspot JVM์ Generational Collection ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
- Heap ์์ญ์ Young area์ old area๋ก ๊ตฌ๋ถํ๋ค. (young area๋ ๋ค์ eden area์ survivor area๋ก ๊ตฌ๋ถํ๋ค.)
- young area์ ๋ํด์๋ minorGC๋ฅผ ์ํํ๊ณ , old area์ ๋ํด์๋ fullGC๋ฅผ ์ํํ๋ค.

(์ฌ์ง ์ Perm(permanent) ์์ญ์ Java8๋ฒ์ ๋ถํฐ ์ฌ๋ผ์ง๊ณ , ๋์ Metaspace๋ก ์ ํ๋์๋ค๊ณ ํ๋ค.)
- Young Generation
- Eden, Survivor0, Survivor1 ์์ญ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- new ํค์๋๋ก ๊ฐ์ฒด๊ฐ ์ต์ด๋ก ์์ฑ๋๋ฉด ํด๋น ๊ฐ์ฒด๋ ๊ฐ์ฅ ๋จผ์ eden ์์ญ์ ํ ๋น๋๋ค.
- Eden ์์ญ์ด ๊ฝ์ฐจ๋ฉด minor GC๊ฐ ์ผ์ด๋๋ค.
- ์ฐธ์กฐ๋๊ณ ์์ง ์์ ๊ฐ์ฒด๋ eden ์์ญ์ ๋จ๊ฒจ๋๊ณ , ์ฐธ์กฐ๋๊ณ ์๋ live object๋ survivor ์์ญ์ผ๋ก ๋์ด๊ฐ๋ค.
- ๋ชจ๋ live object๊ฐ survivor ์์ญ์ผ๋ก ๋์ด๊ฐ๊ณ ๋๋ฉด, eden์์ญ์ ๋จ์์๋ ๊ฐ์ฒด๋ค์ ๋ชจ๋ ํ ๋น ํด์ ํ๋ค.
- Old generation
- Young generation์์ live object๋ก ์ค๋ ์ด์๋จ์ ๊ฐ์ฒด๋ old generation์ผ๋ก ์ด๋ํ๊ฒ ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
์์ ์ ํด์ง ํ์๋ฅผ ์ด๊ณผํ์ฌ ์ฐธ์กฐ๋ ๊ฐ์ฒด๋ฅผ ์ค๋ ์ด์๋จ์๋ค๊ณ ํ๋จํ๋ค๊ณ ํ๋ค.
- ์ฆ Old generation์ ๋ง ์๋ก ์์ฑ๋ ๊ฐ์ฒด๊ฐ ๋ค์ด์ค๋ ์์ญ์ด ์๋๋ผ, ๋น๊ต์ ์ค๋ซ๋์ ์ฐธ์กฐ๋์ด ์ฌ์ฉ๋์๊ณ ์์ผ๋ก๋ ๊ณ์ ์ฌ์ฉ๋ ํ๋ฅ ์ด ๋์ ๊ฐ์ฒด๋ค์ด ๋ค์ด์ค๋ ์์ญ์ด๋ค.
- Old generation์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฝ์ฐจ๋ฉด full GC(major GC)๊ฐ ์ผ์ด๋๋ค.
์ฐธ๊ณ ๋ก, ํ ์์ญ์ ๊ฐ์ฒด๋ stack ๋ฐ์ดํฐ, static ๋ฐ์ดํฐ, JNI๋ก ๋ง๋ค์ด์ง ๋ฐ์ดํฐ๋ก๋ถํฐ ์ฐธ์กฐ๋ ์ ์๋ค.
๐ GC ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฏธ์น๋ ์ํฅ
GC๊ฐ ์ผ์ด๋๋ ์๊ฐ์๋ ์งง์ ์๊ฐ์ด์ง๋ง ์ ์ฒด ํ๋ก๊ทธ๋จ์ด ์ผ์์ ์ง๋๋ค.(๋ฌผ๋ก JVM ๊ตฌํ์ ๋ฐ๋ผ์ ์๋ ์๋ ์๋ค)
MinorGC ์ํ์๊ฐ์ ๋ณดํต 1์ด ์ด๋ด์ด๊ณ , fullGC๋ ์ ์ด ์ด์ ์งํ๋๊ธฐ๋ ํ๋ค๊ณ ํ๋ค.
์ด ์ง์ฐ์๊ฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ต์๋๋ ๋ฌผ๋ก , DB ์ฐ๊ฒฐ์ด ๋๊ธฐ๋ ๋ฑ ์ด์์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์๋ ์๋ค.
๋ฐ๋ผ์ GC ์์ฒด๊ฐ ์ ๊ฒ ์ผ์ด๋๋๋ก ํ๋ ๊ฒ์ด ์ข๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์คํ์ค ์์ฑ๋ ๊ฐ์ฒด๊ฐ ๋ง์์๋ก Garbage Collector๊ฐ ์ฒ๋ฆฌํด์ผ ํ๋ ๋์๋ ๋ง์์ง๋ฏ๋ก GC ์ํ ํ์๋ ๋ง์์ง๋ค.
๋ฐ๋ผ์ GC ์์ฒด๊ฐ ์ ๊ฒ ์ผ์ด๋๊ฒ ํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์์ ๊ฐ์ฒด ์์ฑ ํ์๋ฅผ ์ค์ฌ์ผ ํ๋ค.
์๋ฅผ ๋ค๋ฉด String ๋์ StringBuilder๋ StringBuffer๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๋๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ GC ํ๋์ด ์๋๋ฐ, ํฌ๊ฒ ์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํ๋์ ํ๋ค๊ณ ํ๋ค.
- Old area๋ก ๋์ด๊ฐ๋ ๊ฐ์ฒด์ ์๋ฅผ ์ต์ํ์์ผ์ ์ต๋ํ fullGC๊ฐ ์ผ์ด๋์ง ์๋๋ก ํ๋ ๋ฐฉ๋ฒ
- FullGC์ค ๋ฐ์ํ๋ ์ง์ฐ์๊ฐ์ ๊ฐ์์ํค๋ ๋ฐฉ๋ฒ
โ ๋ํ์ ์ธ GC ์๊ณ ๋ฆฌ์ฆ
๐ Mark and Sweep ์๊ณ ๋ฆฌ์ฆ
- GC์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์์ผ๋ก, mark ๋จ๊ณ์ sweep ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๋์ํ๋ค.
๐ฅ ๋์ ๋ฐฉ์
- Mark ๋จ๊ณ : ์ฐธ์กฐ๋๊ณ ์๋(=์ฌ์ฉ์ค์ธ) ๊ฐ์ฒด๋ฅผ ์ฐพ์ ํ์ํ๋ค.
- Sweep ๋จ๊ณ : ๋งํน๋์ง ์์ ๊ฐ์ฒด๋ฅผ ์ ๋ถ ํ์ํ๋ค.
๐ฅ ์ฅ์
- ๊ตฌํ์ด ๋จ์ํ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ GC์์ ๋๋ฆฌ ์ฌ์ฉ๋์๋ค๊ณ ํ๋ค.
๐ฅ ๋จ์
- Stop-the-world : GC์์ ๋์ค์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ฒด ์ค๋จ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋จํธํ ๋ฌธ์ : ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น ํด์ ๋ ํ, ๊ฐ์ฉํ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ด ์ฐ์์ ์ด์ง ์์์
์ถฉ๋ถํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ์๋ก์ด ๊ฐ์ฒด ํ ๋น์ด ์ด๋ ค์ธ ์ ์๋ค.
๐ Mark and Copy ์๊ณ ๋ฆฌ์ฆ
- Mark and sweep ์๊ณ ๋ฆฌ์ฆ์ ๋ฉ๋ชจ๋ฆฌ ๋จํธํ ๋ฌธ์ ๋ฅผ ๋ณด์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ๊ฐ์ฉ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ผํ ํฌ๊ธฐ์ ๋ ๊ฐ์ ์์ญ์ผ๋ก ๋๋๊ณ , ํ ์ชฝ ์์ญ์์๋ง ์์ ํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
- ์์์ ์ค๋ช ํ survivor0 ์์ญ๊ณผ survivor1 ์์ญ์ด ์ด์ ํด๋นํ๋ค.
๐ฅ ๋์ ๋ฐฉ์
- ์ฒ์์๋ ๊ฐ์ฉ ์์ญ ์ค ํ ์ชฝ ์์ญ์์๋ง ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
- Mark ๋จ๊ณ์์ ์ฌ์ฉ์ค์ธ ๊ฐ์ฒด๋ฅผ ์ฐพ์ ํ์ํ๊ณ , ๋งํน๋ ๊ฐ์ฒด๋ ์ ๋ถ ๋ค๋ฅธ ์์ญ์ผ๋ก ๋ณต์ฌํ๋ค.
- ๊ธฐ์กด ์์ญ์ ๋จ์์๋ ๊ฐ์ฒด๋ ์ ๋ถ ํ์(sweep)ํ๊ณ , ๊ฐ์ฉ ์์ญ๋ผ๋ฆฌ ์ญํ ์ ๊ต์ฒดํ์ฌ ์ด๋ฒ์๋ sweepํ ์์ญ์๋ง ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
๐ฅ ์ฅ์
- ๊ฐ์ฒด๋ฅผ ํ์ชฝ ์์ญ์์ ๋ค๋ฅธ์ชฝ ์์ญ์ผ๋ก ๋ณต์ฌํ ๋ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ ๋จํธํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ค.
๐ฅ ๋จ์
- ๊ฐ์ฉ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์ ๋ฐ์ผ๋ก ์ค์ด๋ ๋ค.
- ์์กดํ ๊ฐ์ฒด๊ฐ ๋ง์์๋ก ๋ณต์ฌ ๋น์ฉ์ด ์ฆ๊ฐํ์ฌ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
๐ Mark and Compact ์๊ณ ๋ฆฌ์ฆ
- Mark and copy ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ ์ ๋ณด์ํ๋ ๋ฐฉ์์ผ๋ก, mark, compact, sweep ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๋์ํ๋ค.
๐ฅ ๋์ ๋ฐฉ์
- Mark ๋จ๊ณ : ์ฐธ์กฐ๋๊ณ ์๋(=์ฌ์ฉ์ค์ธ) ๊ฐ์ฒด๋ฅผ ์ฐพ์ ํ์ํ๋ค.
- Compact ๋จ๊ณ : ๋งํน๋ ๊ฐ์ฒด๋ฅผ ํ์ชฝ์ผ๋ก ๋ฐ์ด ์ ๋ฆฌํ๊ณ , ๋๋จธ์ง ๊ณต๊ฐ์ ์ฐ์์ ์ธ ๋น ๊ณต๊ฐ์ผ๋ก ํ๋ณดํ๋ค.
- Sweep ๋จ๊ณ : ๋๋จธ์ง ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ์ํ๋ค.
๐ฅ ์ฅ์
- ๋ฉ๋ชจ๋ฆฌ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด์, mark and copy ์๊ณ ๋ฆฌ์ฆ์ ๋นํด ๊ฐ์ฉ๊ณต๊ฐ๋ ๋ง์์ง๋ค.
๐ฅ ๋จ์
- ์ฌ์ ํ GC ๋์์ค์๋ ๋ชจ๋ ์ฐ์ฐ์ด ๋ฉ์ถ๋ฉฐ ์ง์ฐ์๊ฐ์ด ๋ฐ์ํ๋ค. (stop-the-world)
- Compact ๋จ๊ณ์์ ๋ฉ๋ชจ๋ฆฌ ์ด๋ ๋น์ฉ์ด ๋ ๋ค.
โ GC ์ข ๋ฅ
๐ Serial GC
- ์ฑ๊ธ์ค๋ ๋ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ํ์๊ฐ ๋๋ ๋๊น์ง ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ผ์์ ์ง๋๋ค. (stop-the-world)
- Java8์์ JVM Client VM์ ๊ธฐ๋ณธ GC์ด๋ค.
๐ Parallel GC
- ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๋ฅผ ์ด์ฉํด์ ๋ณ๋ ฌ๋ก GC๋ฅผ ์ํํ๋ค.
- SerialGC์ ๋นํด ์๋๋ ๋นจ๋ผ์ก์ผ๋, ์ฌ์ ํ ๋ฉ๋ชจ๋ฆฌ ํ์๊ฐ ๋๋ ๋๊น์ง๋ stop-the-world๊ฐ ๋ฐ์ํ๋ค.
- Java8์์ JVM Server VM์ ๊ธฐ๋ณธ GC์ด๋ค.
๐ G1 GC
- Garbage First GC.
- ๊ธฐ๋ณธ์ ๋ฐฉ์์ฒ๋ผ ํ ์์ญ์ Generation์ผ๋ก ๋๋์ด GC๋ฅผ ์ํํ์ง ์๋๋ค.
- ํ ์์ญ์ Region์ด๋ผ๊ณ ํ๋ ๊ท ์ผํ ํฌ๊ธฐ์ ๋ ๋ฆฝ๋ ์์ญ์ผ๋ก ๋ถํ ํ๊ณ , ํ์ํ ๊ฐ์ฒด๊ฐ ๋ง์ ์์ญ์ ์ฐ์ ํ์ํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
- Java9๋ถํฐ ํ์ฌ(Java23)๊น์ง ๊ธฐ๋ณธGC์ด๋ค.
โ References
- ๐ JVM Performance Optimizing ๋ฐ ์ฑ๋ฅ๋ถ์ ์ฌ๋ก
'๊ฐ์ธ ๊ณต๋ถ > Java, Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์คํธ๋ฆผ (0) | 2025.01.10 |
---|---|
[Java] ๋๋ค์, ๋ฉ์๋์ฐธ์กฐ (0) | 2025.01.09 |
[Java] Functional Interface (ํจ์ํ ์ธํฐํ์ด์ค) (0) | 2025.01.09 |
[Java] JRE์ JDK (2) | 2025.01.02 |
[Java] Java์ ํน์ง, Java ์คํ ๊ณผ์ , ์ธํฐํ๋ฆฌํฐ์ JIT ์ปดํ์ผ๋ฌ (1) | 2025.01.02 |