๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

[ART][Compiler] JIT ์ปดํŒŒ์ผ๋Ÿฌ์™€ AOT ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋ณ‘ํ–‰ ์‚ฌ์šฉ ์ด์œ  + ART ์˜ˆ์‹œ

์ถœ์ฒ˜

ChatGPT

 


 

JIT(Jist-In_Time) ์ปดํŒŒ์ผ๋Ÿฌ์™€ AOT(Ahead-Of-Time) ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์žฅ์ ๊ณผ ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ์ปดํŒŒ์ผ ๋ฐฉ์‹์ด ๋ณ‘ํ–‰ํ•ด์„œ ์‚ฌ์šฉ๋  ๋•Œ ์„œ๋กœ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ‘ํ–‰ ์‚ฌ์šฉ์€ ์„ฑ๋Šฅ ์ตœ์ ํ™”์™€ ํšจ์œจ์ ์ธ ์ž์› ํ™œ์šฉ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. 

 

JIT ์ปดํŒŒ์ผ๋Ÿฌ

ํŠน์ง•

1. ๋Ÿฐํƒ€์ž„ ์ตœ์ ํ™”

ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ์— ๋ฉ”์†Œ๋“œ๋‚˜ ์ฝ”๋“œ ๋ธ”๋ก์„ ์ปดํŒŒ์ผํ•œ๋‹ค. ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ํŒจ์Šค๋ฅผ ์ง‘์ค‘์ ์œผ๋กœ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ์ ์‘ํ˜• ์ตœ์ ํ™”

ํ”„๋กœ๊ทธ๋žจ์˜ ์‹ค์ œ ์‹คํ–‰ ์ƒํ™ฉ์— ๋งž์ถฐ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์กฐ๊ฑด๋ฌธ์ด ํ•ญ์ƒ ์ฐธ์ผ ๊ฒฝ์šฐ, JIT๋Š” ์ด๋Ÿฌํ•œ ํŒจํ„ด์„ ํ•™์Šตํ•˜๊ณ  ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ๋น ๋ฅธ ์Šคํƒ€ํŠธ์—…

์ดˆ๊ธฐ์—๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅด ํ•ด์„(interpreting)ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋‹ค๊ฐ€, ์ ์  ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์ปดํŒŒ์ผํ•˜์—ฌ ์ตœ์ ํ™”ํ•œ๋‹ค.

 

๋‹จ์ 

์ดˆ๊ธฐ ์‹คํ–‰ ์†๋„

์ฒ˜์Œ ์‹คํ–‰๋  ๋•Œ๋Š” ํ•ด์„ ๋ชจ๋“œ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, JIT ์ปดํŒŒ์ผ์ด ์™„๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์‹คํ–‰ ์†๋„๊ฐ€ ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ 

JIT ์ปดํŒŒ์ผ ์‹œ, ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ  ์ž์›์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉฐ, ์‹คํ–‰ ์‹œ์ ์— ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

AOT ์ปดํŒŒ์ผ๋Ÿฌ

ํŠน์ง•

1. ๋น ๋ฅธ ์‹œ์ž‘ ์‹œ๊ฐ„

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ „์— ๋ฏธ๋ฆฌ ๊ธฐ๊ณ„์–ด๋กœ ์ปดํŒŒ์ผ๋˜์–ด ์žˆ์–ด, ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค.

2. ๊ธฐ๋ณธ ์„ฑ๋Šฅ ๋ณด์žฅ

์ฝ”๋“œ๊ฐ€ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋˜๋ฏ€๋กœ ์‹คํ–‰ ์‹œ์ ์—์„œ์˜ ์ตœ์ ํ™” ์ž‘์—…์ด ํ•„์š” ์—†์ด, ์ดˆ๊ธฐ ์„ฑ๋Šฅ์ด ๋” ์ข‹๋‹ค.

 

์ด ๋ฌธ๋งฅ์—์„œ "์ดˆ๊ธฐ ์„ฑ๋Šฅ์ด ๋” ์ข‹๋‹ค"๋Š” ์˜๋ฏธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์„ ์‹œ์ž‘ํ•  ๋•Œ ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•˜๊ณ , ์ดˆ๊ธฐ ์ž‘์—…์„ ์‹ ์†ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘ํ•  ๋•Œ, ์ฆ‰ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘ ์‹œ๊ฐ„์ด๋‚˜ ์ดˆ๊ธฐ ์‹คํ–‰ ๋‹จ๊ณ„์—์„œ ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•˜๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

 

๋‹จ์ 

1 ์ตœ์ ํ™”์˜ ํ•œ๊ณ„

ํ”„๋กœ๊ทธ๋žจ์˜ ์‹ค์ œ ๋Ÿฐํƒ€์ž„ ์ •๋ณด(์‹คํ–‰ ํŒจํ„ด ๋“ฑ)๋ฅผ ํ™œ์šฉํ•œ ์ตœ์ ํ™”๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

2. ๋Œ€์‘๋ ฅ ๋ถ€์กฑ

๋‹ค์–‘ํ•œ ์‹คํ–‰ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ ์‘๋ ฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“  ์ƒํ™ฉ์— ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์ „์— ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

JIT์™€ AOT์˜ ๋ณ‘ํ–‰ ์‚ฌ์šฉ ์ด์œ 

1. ์„ฑ๋Šฅ ์ตœ์ ํ™”

JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋Ÿฐํƒ€์ž„์— ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํŒจํ„ด์„ ๋ถ„์„ํ•˜๊ณ , ์ž์ฃผ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋‚˜ ์ฝ”๋“œ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ฏธ๋ฆฌ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋น ๋ฅธ ์‹œ์ž‘ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•œ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๋ณ‘ํ–‰ ์‚ฌ์šฉํ•˜๋ฉด, ์ดˆ๊ธฐ ์‹คํ–‰ ์‹œ์—๋Š” AOT๋กœ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•˜๊ณ , ์‹คํ–‰ ์ค‘์—๋Š” JIT๋กœ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

2. ๋น ๋ฅธ ์‹œ์ž‘๊ณผ ์ ์‘ํ˜• ์ตœ์ ํ™”

AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋น ๋ฅธ ์‹œ์ž‘ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์„ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ดํ›„ JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ์ถ”๊ฐ€์ ์ธ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ด ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ํŠนํžˆ ๋Œ€ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์œ ๋ฆฌํ•˜๋‹ค.

3. ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์˜ ๊ท ํ˜•

JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์‹คํ–‰ ์ค‘์ธ ์ฝ”๋“œ์˜ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, AOT ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋Š” ์ด๋ฏธ ์ตœ์ ํ™”๋œ ์ƒํƒœ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ๋” ์ž˜ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณ‘ํ–‰ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ๊ณผ ์„ฑ๋Šฅ

์ž๋ฐ”์™€ ๊ฐ™์€ ์–ธ์–ด๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋ ›ํผ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. AOT ์ปดํŒŒ์ผ์€ ํŠน์ • ํ”Œ๋žซํผ์— ๋งž์ถฐ ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์‹คํ–‰ ์ค‘ ํ”Œ๋žซํผ์— ๋งž์ถฐ ์ถ”๊ฐ€์ ์ธ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์ผ๊ด€๋œ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

-> AOT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ”Œ๋žซํผ์— ์ตœ์ ํ™”๋œ ์ฝ”๋“œ ์ƒ์„ฑ + JIT๊ฐ€ ์‹คํ–‰ ์ƒํ™ฉ์— ์ตœ์ ํ™” ์ˆ˜ํ–‰ -> ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์ผ๊ด€๋œ ์„ฑ๋Šฅ ์ œ๊ณต ๋ณด์žฅ

5. ์ฝ”๋“œ์˜ ์•ˆ์ „์„ฑ๊ณผ ์œ ์—ฐ์„ฑ

AOT ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋Š” ์ด๋ฏธ ์ปดํŒŒ์ผ๋œ ์ƒํƒœ๋กœ ์ œ๊ณต๋˜๋ฏ€๋กœ ์•ˆ์ •์ ์ธ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์— ๋งž์ถฐ ์ตœ์ ํ™”๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ์กฐํ•ฉ์€ ๋‹ค์–‘ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ ์•ˆ์ •์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๋™์‹œ์— ์ œ๊ณตํ•œ๋‹ค. 

 

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ์˜ ์˜ˆ : Android Runtime (ART)

Android Runtime(ART)๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ 5.0(Lollipop)๋ถ€ํ„ฐ ๋„์ž…๋œ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋‹ค.

๊ธฐ์กด์˜ Dalvik VM์„ ๋Œ€์ฒดํ–ˆ๋‹ค. ART๋Š” JIT์™€ AOT ์ปดํŒŒ์ผ์„ ๋ชจ๋‘ ์ง€์›ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ๊ณผ ์‘๋‹ต์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š”๋ฐ ๊ธฐ์—ฌํ•˜๊ณ  ์žˆ๋‹ค.

 

ART์˜ ์ฃผ์š” ํŠน์ง•

1. JIT ์ปดํŒŒ์ผ๋Ÿฌ

1] ๋Ÿฐํƒ€์ž„ ์ตœ์ ํ™”

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ ๊ฒฝ๋กœ(์ฝ”๋“œ ํŒจ์Šค)๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

2] ์ ์‘ํ˜• ์ปดํŒŒ์ผ

  • ๋Ÿฐํƒ€์ž„์— ํ”„๋กœ๊ทธ๋žจ์˜ ์‹ค์ œ ์‚ฌ์šฉ ํŒจํ„ด์„ ๋ถ„์„ํ•˜์—ฌ ์ ์ ˆํ•œ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•œ๋‹ค.

3] ๋น ๋ฅธ ์‘๋‹ต์„ฑ

  • ์ดˆ๊ธฐ์—๋Š” ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก JIT ์ปดํŒŒ์ผ์„ ํ†ตํ•ด ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐฉ์‹์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์ดํ›„ ์ค‘์š”ํ•œ ๊ฒฝ๋กœ๋Š” ์ปดํŒŒ์ผํ•œ๋‹ค.

2. AOT ์ปดํŒŒ์ผ๋Ÿฌ

1] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์น˜ ์‹œ์ ์˜ ์ปดํŒŒ์ผ

  • ์•ฑ์„ ์„ค์น˜ํ•  ๋•Œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•ด ์‹คํ–‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

2] ๋น ๋ฅธ ์‹œ์ž‘ ์‹œ๊ฐ„

  • ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋˜์–ด ์žˆ์–ด ์•ฑ์˜ ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค.

3] ๋ฐฐํ„ฐ๋ฆฌ ํšจ์œจ์„ฑ

  • ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— CPU ์‚ฌ์šฉ๋Ÿ‰์ด ์ค„์–ด๋“ค์–ด ๋ฐฐํ„ฐ๋ฆฌ ํšจ์œจ์„ฑ์ด ์ฆ๊ฐ€ํ•œ๋‹ค.

3. ํ˜ผํ•ฉ ๋ชจ๋“œ

1] ์„ฑ๋Šฅ

  • ART๋Š” JIT์™€ AOT ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์žฅ์ ์„ ๊ฒนํ•ฉํ•˜์—ฌ ์•ฑ์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”ํ•œ๋‹ค. ์•ฑ ์„ค์น˜ ์‹œ AOT๋กœ ์ฃผ์š” ์ฝ”๋“œ๊ฐ€ ์ปดํŒŒ์ผ๋˜๊ณ , ๋Ÿฐํƒ€์ž„ ์‹œ JIT๋กœ ์‹คํ–‰ ํŒจํ„ด์— ๋”ฐ๋ผ ์ถ”๊ฐ€ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

2] ์ €์žฅ ๊ณต๊ฐ„ ํšจ์œจ

  • AOT๋กœ ์ธํ•ด ์ €์žฅ ๊ณต๊ฐ„์„ ๋งŽ์ด ์ฐจ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ ์„ ๊ณ ๋ คํ•˜์—ฌ, ํ•„์š”ํ•  ๋•Œ๋งŒ JIT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ €์žฅ ๊ณต๊ฐ„ ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•œ๋‹ค.

4. ํ”„๋กœํŒŒ์ผ ๊ธฐ๋ฐ˜ ์ปดํŒŒ์ผ(PGO, Profile-Guided Optimization)

1] ํ”„๋กœํŒŒ์ผ ์ˆ˜์ง‘

  • ์•ฑ์ด ์‹คํ–‰๋  ๋•Œ JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์„ฑ๋Šฅ ํ”„๋กœํŒŒ์ผ์„ ์ˆ˜์ง‘ํ•œ๋‹ค. ์ด ํ”„๋กœํŒŒ์ผ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

2] AOT ์ตœ์ ํ™”

  • ๋‹ค์Œ์— ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜, ์žฅ์น˜๋ฅผ ์ถฉ์ „ํ•˜๋Š” ๋™์•ˆ, ART๋Š” ์ด ํ”„๋กœํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด AOT ์ปดํŒŒ์ผ์„ ํ†ตํ•ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋”์šฑ ์ตœ์ ํ™”ํ•œ๋‹ค.

3] ์ ์‘ํ˜• ์„ฑ๋Šฅ ํ–ฅ์ƒ

  • ์‹คํ–‰ ์‹œ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฏธ๋ž˜์˜ ์‹คํ–‰์„ ์œ„ํ•œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Dalvik VM vs ART

์•ˆ๋“œ๋กœ์ด๋“œ ์ดˆ๊ธฐ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ธ Dalvik VM์€ JIT  ์ปดํŒŒ์ผ์„ ์ค‘์‹ฌ์œผ๋กœ ๋“ฑ์žฅํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ART๋Š” AOT์™€ JIT๋ฅผ ๊ฒฐํ•ฉํ•ด ๋” ๋‚˜์€ ์„ฑ๋Šฅ๊ณผ ํšจ์œจ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

ํŠน์ง• Dalvik VM ART
์ปดํŒŒ์ผ ๋ฐฉ์‹ JIT ์ค‘์‹ฌ AOT + JIT
์•ฑ ์‹œ์ž‘ ์‹œ๊ฐ„ ๋น„๊ต์  ๋Š๋ฆผ ๋” ๋น ๋ฆ„(AOT ์ปดํŒŒ์ผ ๋•๋ถ„)
๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ ๋Ÿฐํƒ€์ž„ ์ตœ์ ํ™”์— ์ œํ•œ์  ํ”„๋กœํŒŒ์ผ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™”๋กœ ์„ฑ๋Šฅ ์ข‹์€
๋ฐฐํ„ฐ๋ฆฌ ํšจ์œจ์„ฑ ๋‚ฎ์Œ(๋Ÿฐํƒ€์ž„ ์ปดํŒŒ์ผ ๋ถ€๋‹ด) ๋” ์ข‹์Œ (AOT๋กœ ์ธํ•œ CPU ๋ถ€๋‹ด ๊ฐ์†Œ)
์—…๋ฐ์ดํŠธ ์‹œ๊ฐ„ ์•ฑ ์„ค์น˜ ๋ฐ ์—…๋ฐ์ดํŠธ ์‹œ ๋น ๋ฅธ ํ”„๋กœํŒŒ์ผ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™”๋กœ ๋” ๊ธด ์—…๋ฐ์ดํŠธ ์‹œ๊ฐ„

 

 

Android N์—์„œ์˜ ๋ณ€ํ™”

์•ˆ๋“œ๋กœ์ด๋“œ Nougat(N, 7.0) ๋ถ€ํ„ฐ๋Š” ART์—์„œ์˜ ์ปดํŒŒ์ผ๋ง ์ „๋žต์ด ๋”์šฑ ๋ฐœ์ „ํ–ˆ๋‹ค. Nougat์˜ ART๋Š” ํ”„๋กœํŒŒ์ผ ๊ฐ€์ด๋“œ ์ตœ์ ํ™”(PGO)๋ฅผ ์‚ฌ์šฉํ•ด ์ดˆ๊ธฐ ์„ค์น˜ ์‹œ ์™„์ „ํ•œ AOT  ์ปดํŒŒ์ผ ๋Œ€์‹ , ํ”„๋กœํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ AOT ์ปดํŒŒ์ผ์„ ํ•œ๋‹ค. ์ดํ›„, JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋Ÿฐํƒ€์ž„ ์‹œ ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“ค ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•œ๋‹ค.

 

์ด ๋ฐฉ์‹์˜ ์ด์ ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1] ๋น ๋ฅธ ์„ค์น˜ ์‹œ๊ฐ„

  •  ์ฒ˜์Œ ์•ฑ์„ ์„ค์น˜ํ•  ๋•Œ, ์™„์ „ํ•œ AOT ์ปดํŒŒ์ผ์„ ํ”ผํ•˜๊ณ , ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ปดํŒŒ์ผํ•ด ์„ค์น˜ ์‹œ๊ฐ„์„ ์ค„์ธ๋‹ค.

2] ์ ์‘ํ˜• ์„ฑ๋Šฅ ํ–ฅ์ƒ

  • ์‚ฌ์šฉ์ž ํŒจํ„ด์— ๋”ฐ๋ผ JIT๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์ตœ์ ํ™”ํ•˜์—ฌ, ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์•ฑ์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋‹ค.

3] ์ €์žฅ ๊ณต๊ฐ„ ํšจ์œจ์„ฑ

  • ํ”„๋กœํŒŒ์ผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ปดํŒŒ์ผํ•ด ์ €์žฅ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•œ๋‹ค.

 

์˜ˆ์‹œ : Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๊ณผ์ •

1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์น˜

  • ์„ค์น˜ ์‹œ AOT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„์„ ๋„ค์ดํŠธ๋ธŒ๋กœ ์ปดํŒŒ์ผํ•œ๋‹ค. ์ด ๊ณผ์ •์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ด๋ฃจ์–ด์ง„๋‹ค.
  • ํ”„๋กœํŒŒ์ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ƒˆ๋กœ์šด ์•ฑ์€ ์ตœ์†Œํ•œ์˜ AOT ์ปดํŒŒ์ผ์„ ํ†ตํ•ด ์„ค์น˜ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•œ๋‹ค.

2. ์•ฑ ์‹คํ–‰

  • ์ฒ˜์Œ ์‹คํ–‰ ์‹œ JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž‘๋™ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ํ”„๋กœํŒŒ์ผ ์ˆ˜์ง‘์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ ํŒจํ„ด์„ ํ•™์Šตํ•œ๋‹ค.

3. ๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „ ์‹œ ์ตœ์ ํ™”

  • ๊ธฐ๊ธฐ๊ฐ€ ์ถฉ์ „ ์ค‘์ด๊ฑฐ๋‚˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ, ํ”„๋กœํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ AOT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•ฑ์˜ ์ฃผ์š” ๊ฒฝ๋กœ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค.
  • ํ–ฅํ›„ ์‹คํ–‰ ์‹œ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Android Runtime(ART) ํŒŒํŠธ ๊ฒฐ๋ก 

์•ˆ๋“œ๋กœ์ด๋“œ JIT์™€ AOT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋ณ‘ํ–‰ ์‚ฌ์šฉํ•˜๋Š” ART๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ, ์‹œ์ž‘ ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๋ฐฐํ„ฐ๋ฆฌ ํšจ์œจ์„ฑ์„ ์ตœ์ ํ™”ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ํšจ๊ณผ์ ์ด๋‹ค.

 

1] ์„ฑ๋Šฅ

  • AOT๋กœ ์ธํ•œ ๋น ๋ฅธ ์‹คํ–‰๊ณผ JIT๋กœ ์ธํ•œ ์ ์‘ํ˜• ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

2] ํšจ์œจ์„ฑ

  • ์ ์ ˆํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ €์žฅ ๊ณต๊ฐ„ ์‚ฌ์šฉ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•œ๋‹ค.

3] ์œ ์—ฐ์„ฑ

  • ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ํŒจํ„ด๊ณผ ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์— ์ ์‘ํ•˜์—ฌ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•œ๋‹ค.

ART๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์ƒํƒœ๊ณ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ๊ณผ ํšจ์œจ์„ฑ์€ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด JIT์™€ AOT์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•œ ์ค‘์š”ํ•œ ๊ธฐ์ˆ ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ์ž๋“ค์€ ๋”์šฑ ๋น ๋ฅด๊ณ  ํšจ์œก์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

JIT์™€ AOT ๋ณ‘ํ–‰ ์‚ฌ์šฉ ์ด์œ  ๊ฒฐ๋ก 

JIT์™€ AOT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋ณ‘ํ–‰ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ์„ฑ๋Šฅ ์ตœ์ ํ™”์™€ ์ž์› ๊ด€๋ฆฌ์— ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ์ด ๋‘ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฐ์ž์˜ ์žฅ์ ์„ ์‚ด๋ ค ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค์–‘ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑ์‹œํ‚ค๋ฉฐ, ํŠนํžˆ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ ํฐ ํšจ๊ณผ๋ฅผ ๋ฐœํœ˜ํ•œ๋‹ค.

 

1. JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋Ÿฐํƒ€์ž„ ์ตœ์ ํ™”์™€ ๋‹คํ˜•์„ฑ ์ง€์›์„ ํ†ตํ•ด ํšจ์œจ์ ์ธ ์‹คํ–‰์„ ์ œ๊ณตํ•œ๋‹ค.

-> ์œ„์˜ ๊ธ€์—์„œ ๋‹คํ˜•์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ ์ ์ด ์—†๋Š” ๋ฐ ๊ฐ‘์ž๊ธฐ ๋‹คํ˜•์„ฑ ์ง€์›์ด๋ž€ ํ‘œํ˜„์ด ๋‚˜์™”๋‹ค. ๐Ÿค” ์ด๊ฑฐ ๊ณง ์•Œ์•„๋ณธ๋‹ค.

2. AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋น ๋ฅธ ์‹œ๊ฐ„ ์‹œ๊ฐ„๊ณผ ์•ˆ์ •์ ์ธ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•œ๋‹ค.

 

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‘ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋ณ‘ํ–‰ ์‚ฌ์šฉ์€ ์ตœ์ƒ์˜ ์„ฑ๋Šฅ๊ณผ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

 


ChatGPT์—๊ฒŒ ์ด ๊ธ€์˜ ์ถœ์ฒ˜๋ฅผ ๋ฌผ์—ˆ๋‹ค.

JIT ์ปดํŒŒ์ผ๋Ÿฌ์™€ AOT ์ปดํŒŒ์ผ๋Ÿฌ ๋ณ‘ํ–‰ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ถœ์ฒ˜

  1. Oracle's Official Java Documentation
    • ๋‚ด์šฉ: Oracle์˜ ๊ณต์‹ ์ž๋ฐ” ๋ฌธ์„œ์—์„œ๋Š” JIT(Just-In-Time) ์ปดํŒŒ์ผ๋Ÿฌ์™€ AOT(Ahead-Of-Time) ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ฐจ์ด์ ๊ณผ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์„ค๋ช…:
      • JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋Ÿฐํƒ€์ž„์— ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ํŒจ์Šค๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ์‹คํ–‰ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
      • AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์‚ฌ์ „์— ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
      • ๋‘ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฒฐํ•ฉ์€ ๋น ๋ฅธ ์‹œ์ž‘ ์‹œ๊ฐ„๊ณผ ๋†’์€ ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ์„ ๋™์‹œ์— ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋งํฌ: Java Performance Documentation
  2. GraalVM Documentation
    • ๋‚ด์šฉ: GraalVM์€ Oracle์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋ชฉ์  ๊ฐ€์ƒ ๋จธ์‹ ์œผ๋กœ, JIT์™€ AOT ์ปดํŒŒ์ผ์„ ์ง€์›ํ•˜๋ฉฐ ๋‘ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋ณ‘ํ–‰ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
    • ์„ค๋ช…:
      • GraalVM์€ AOT๋กœ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋น ๋ฅธ ์‹œ์ž‘ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
      • ๋Ÿฐํƒ€์ž„ ์ค‘ JIT ์ปดํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
      • ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๋น ๋ฅธ ๋ฐฐํฌ์™€ ๋†’์€ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ๋งํฌ: GraalVM Documentation
  3. "Java Performance: The Definitive Guide" by Scott Oaks
    • ๋‚ด์šฉ: ์ด ์ฑ…์€ Java ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์‹ฌ์ธต์ ์ธ ํ†ต์ฐฐ์„ ์ œ๊ณตํ•˜๋ฉฐ, JIT์™€ AOT ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์žฅ๋‹จ์ ๊ณผ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.
    • ์„ค๋ช…:
      • JIT ์ปดํŒŒ์ผ์€ ์ž์ฃผ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.
      • AOT ์ปดํŒŒ์ผ์€ ์ฝ”๋“œ ์‹คํ–‰ ์ „ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผํ•˜์—ฌ ๋น ๋ฅธ ์‹œ์ž‘์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
      • ๋‘ ๊ธฐ์ˆ ์˜ ์กฐํ•ฉ์€ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ์˜ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ๋งํฌ: Java Performance on Amazon
  4. "Optimizing Java: Practical Techniques for Improving JVM Application Performance" by Ben Evans, James Gough, Chris Newland
    • ๋‚ด์šฉ: ์ด ์ฑ…์€ JVM ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์‹ค์šฉ์ ์ธ ๊ธฐ์ˆ ์„ ์ œ์‹œํ•˜๋ฉฐ, JIT ๋ฐ AOT ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
    • ์„ค๋ช…:
      • JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋Ÿฐํƒ€์ž„์— ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ , ์‹คํ–‰ ๋นˆ๋„๊ฐ€ ๋†’์€ ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ๋™์ ์œผ๋กœ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
      • AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ดˆ๊ธฐ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์‚ฌ์ „์— ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
      • ์ด ๋‘ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋งํฌ: Optimizing Java on Amazon
  5. "Compilers: Principles, Techniques, and Tools" by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
    • ๋‚ด์šฉ: ์ปดํŒŒ์ผ๋Ÿฌ ์ด๋ก ์˜ ๊ธฐ์ดˆ์™€ ํ˜„๋Œ€ ์ปดํŒŒ์ผ๋Ÿฌ ์„ค๊ณ„์— ๋Œ€ํ•œ ์ด ์ฑ…์€ JIT ๋ฐ AOT ์ปดํŒŒ์ผ์˜ ๊ธฐ๋ฒ•๊ณผ ์‘์šฉ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
    • ์„ค๋ช…:
      • JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์‹œ์ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋™์  ์ปดํŒŒ์ผ์„ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
      • AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฝ”๋“œ์˜ ์ •์  ๋ถ„์„์„ ํ†ตํ•ด ์‚ฌ์ „์— ์ตœ์ ํ™”๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
      • ๋ณ‘ํ–‰ ์‚ฌ์šฉ์€ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ณตํ•ฉ์ ์ธ ์ตœ์ ํ™” ์ „๋žต์ž…๋‹ˆ๋‹ค.
    • ๋งํฌ: Compilers on Amazon