๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒฑ CS Study/์ž๋ฐ” \ ์Šคํ”„๋ง

Java, JIT Compiler, JVM

by HelloRabbit 2023. 2. 8.
728x90

Goal

1. ์ž๋ฐ”์˜ ์ปดํŒŒ์ผ ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ
2. JVM์˜ ์—ญํ•  ์„ค๋ช…ํ•˜๊ธฐ

 

Q. ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์ปดํŒŒ์ผ ๋˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ด ๋ณด์‹œ์˜ค.

A.

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค (*.java)
  2. ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์†Œ์Šค์ฝ”๋“œ ํŒŒ์ผ์„ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ ํ•œ๋‹ค (*.class)
  3. ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ JVM (Java Virtual Machine)์˜ ํด๋ž˜์Šค ๋กœ๋”์— ์ „๋‹ฌํ•œ๋‹ค
  4. ํด๋ž˜์Šค ๋กœ๋”๋Š” ๋™์ ๋กœ๋”ฉ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ํด๋ž˜์Šค๋“ค์„ ๋กœ๋”ฉ ๋ฐ ๋งํฌํ•˜์—ฌ JVM ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค
  5. ์‹คํ–‰ ์—”์ง„(์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋˜๋Š” JIT ์ปดํŒŒ์ผ๋Ÿฌ)์€ JVM ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋“ค์„ ๋ช…๋ น์–ด ๋‹จ์œ„๋กœ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์™€ ์‹คํ–‰ํ•œ๋‹ค
๐Ÿ“ ๋ฐ”์ดํŠธ์ฝ”๋“œ : ๊ฐ ๋ช…๋ น์–ด๋Š” 1๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ Opcode์™€ ์ถ”๊ฐ€ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ํŒŒ์ผ (์ปดํ“จํ„ฐ๊ฐ€ ์ฝ์„ ์ˆ˜ ์—†์Œ) 

๐Ÿ“ 
์ธํ„ฐํ”„๋ฆฌํ„ฐ : ๋ฐ”์ดํŠธ ์ฝ”๋“œ ๋ช…๋ น์–ด๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆœ์„œ๋Œ€๋กœ ์ฝ๊ณ  ํ•ด์„ํ•ด์„œ ์‹คํ–‰. ์ „์ฒด์ ์ธ ์‹คํ–‰ ์†๋„๊ฐ€ ๋А๋ฆผ.
๐Ÿ“ JIT (Just-in-Time) ์ปดํŒŒ์ผ๋Ÿฌ : ๋ฐ”์ดํŠธ ์ฝ”๋“œ ์ „์ฒด๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ฐ”์ด๋„ˆ๋ฆฌ (์ปดํ“จํ„ฐ ๊ธฐ๊ณ„์–ด) ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰. ์ „์ฒด์ ์ธ ์‹คํ–‰ ์†๋„๊ฐ€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ณด๋‹ค ๋น ๋ฆ„.

 

 

 

Q. JVM์˜ ์—ญํ• ์€ ๋ฌด์—‡์ธ๊ฐ€?

A.

  • ์ž๋ฐ”๋กœ ๋งŒ๋“  ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์–ด๋А ๊ธฐ๊ธฐ๋‚˜ ์šด์˜์ฒด์ œ ์ƒ์—์„œ๋„ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค
  • ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ตœ์ ํ™” ์‹œํ‚จ๋‹ค

 

 

๋Œ“๊ธ€