JIT COMPILER


jit compiler๋ ๋ฌด์์ธ๊ฐ?
JVM ๋ด์ ๊ตฌ์ฑ๋ execution engine์ ํตํด์ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ์ํจ๋ค
๋ฐ์ดํธ ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ์คํ์ํค๋ ๊ณผ์ ์ ์ธํฐํ๋ฆฌํฐ ๋ผ๊ณ ํ๋ค
jit compiler๋ ์ธํฐํ๋ฆฌํฐ ๊ณผ์ ์์ Java ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐ ๋์์ ์ค๋ค
์ปดํ์ผ์ ์ ํ์ํ์ง?
์ปดํ์ผ์ด ํ์ํ ์ด์ ๋ ์๋ฐ๊ฐ ๋ง๋ ํ์ด๋ฅผ ๋ณด๋ฉด ๋ฐ๋ก ์ดํดํ ์ ์๋ค
์๋ฐ๊ฐ ์ถ๊ตฌํ๋ ํค์๋๋ โWORAโ์ด๋ค(WORA = Write Once Run Anywhere)
โ์ปดํ์ผ ํ๋ฒ์ผ๋ก ์ด๋๊ณณ์์๋ ์ด์์ ํ ์ ์๋คโ
๋ ๊ฒ์ด๋ค๊ทธ๋์ OS์ ์๊ด์์ด JVM๋ง ์ค์น๋์ด ์์ผ๋ฉด ์ด๋๊ณณ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ํฌ์ ์๋ค
๋ํ์ ์ธ ์ปดํ์ผ ์ธ์ด๋ โCโ, โC++โ ์ด๋ค
๊ทธ๋ ๋ค๋ฉด ์๋ฐ๋ ์ ์ธํฐํ๋ฆฌํฐ ๊ณผ์ ์ด ํ์ํ๊ฐ?
์ปดํ์ผ ๊ณผ์ ์ ํตํด์ OS์ ์ข ์ ๋ฐ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ํ ์ ์์ง๋ง ํ ๊ฐ์ง ๋จ์ ์ด ์๋ค
์ปดํ์ผ๋ ์์ค ์ฝ๋๋ฅผ ๋ฐํ์์ ์คํ์ ํ๋ฒ์ ๋ง์ ์์ค ์ฝ๋๋ฅผ ์คํ์ํค๋ ๊ณผ์ ์ด ๋๋ฆฌ๋ค๋ ๊ฒ์ด๋ค
์ด๋ ํ์ผ์ด ๋ง๊ณ ์ฝ๋ ๋ผ์ธ์ด ๋ง์ผ๋ฉด ๋ง์์๋ก ๋ ๋๋ฆฌ๊ฒ ๋์ํ๊ฒ ๋๋ค
์คํ์๊ฐ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ธํฐํ๋ฆฌํฐ ๊ณผ์ ์ด ํ์ํ ๊ฒ์ด๋ค
๊ทธ๋์ ์๋ฐ๋ ์ปดํ์ผ๊ณผ ์ธํฐํ๋ฆฌํฐ๋ฅผ ํผํฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์คํ์ํจ๋ค๊ณ ํ ์ ์๋ค
์๋ฐ์์ ์ธํฐํ๋ฆฌํฐ ๊ณผ์ ์ ์ด๋ป๊ฒ ๋์ํ๋?
JVM ๋ด์ execution engine์ด ์กด์ฌํ๋๋ฐ ๋ด๋ถ์๋ jit compiler๋ผ๋ ๊ตฌ์ฑ์์๊ฐ ์๋ค
jit compiler๋ฅผ ํตํด์ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ ๋์ํ๋ ๊ฒ์ด๋ค
jit compiler ๋ด๋ถ์๋ C1 ์ปดํ์ผ๋ฌ์ C2 ์ปดํ์ผ๋ฌ๊ฐ ์กด์ฌํ๋ค
C1 ์ปดํ์ผ๋ฌ๋ ๊ธฐ๊ณ์ด๋ก ์ปดํ์ผ๋ง ์ํํ๊ณ , C2 ์ปดํ์ผ๋ฌ๋ ์ปดํ์ผ + ์บ์ ๊ณผ์ ์ ์ํํ๊ฒ ๋๋ค
C2 ์ปดํ์ผ๋ฌ ๋๋ถ์ ์ธํฐํ๋ฆฌํฐ์ ์คํ์๊ฐ์ ๋จ์ถ ํ ์ ์๋ค
ํ์ง๋ง ๋ชจ๋ ์ฝ๋๋ฅผ C2 ๋จ๊ณ์์ ์บ์ฑํ์ง๋ ์๋๋ค
๊ทธ๋ฆฌ๊ณ ์บ์ฑ๋๋ ํฌ๊ธฐ๋ ์ ํ๋์ด ์๊ธฐ ๋๋ฌธ์, ์บ์ฑ๋์ด ์ ์ฅ๋์๋๋ผ๋ ๋ช๋ช ์ฝ๋๋ ๋ค์ ์ ๊ฑฐ๋๊ธฐ๋ ํ๋ค
์ฐธ๊ณ
Last updated
Was this helpful?