JIT ์ปดํŒŒ์ผ๋Ÿฌ์™€ ํ•จ๊ป˜ Python์„ ์ œ๊ณตํ•˜๋Š” Pyston ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฐœ๋ฐฉํ˜• ๊ฐœ๋ฐœ ๋ชจ๋ธ๋กœ ๋Œ์•„์™”์Šต๋‹ˆ๋‹ค.

์ตœ์‹  JIT ์ปดํŒŒ์ผ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ Python ์–ธ์–ด์˜ ๊ณ ์„ฑ๋Šฅ ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜๋Š” Pyston ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ์ž๋Š” Pyston 2.2์˜ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ฐœํ‘œํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋ณต๊ท€ํ•œ๋‹ค๊ณ  ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„์€ C++ ๋“ฑ ์ „ํ†ต์ ์ธ ์‹œ์Šคํ…œ ์–ธ์–ด์— ๊ฐ€๊นŒ์šด ๊ณ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. Pyston 2 ๋ธŒ๋žœ์น˜์˜ ์ฝ”๋“œ๋Š” CPython ๋ผ์ด์„ ์Šค์™€ ์œ ์‚ฌํ•œ PSFL(Python Software Foundation ๋ผ์ด์„ ์Šค)์— ๋”ฐ๋ผ GitHub์— ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.

Pyston ํ”„๋กœ์ ํŠธ๋Š” ์ด์ „์— Dropbox๊ฐ€ ๊ฐ๋…ํ–ˆ์œผ๋ฉฐ 2017๋…„์— ๊ฐœ๋ฐœ ์ž๊ธˆ ์กฐ๋‹ฌ์„ ์ค‘๋‹จํ–ˆ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์„ธ์š”. Pyston ๊ฐœ๋ฐœ์ž๋“ค์€ ํšŒ์‚ฌ๋ฅผ ์„ค๋ฆฝํ•˜๊ณ  ํฌ๊ฒŒ ์žฌ์„ค๊ณ„๋œ Pyston 2 ๋ธŒ๋žœ์น˜๋ฅผ ์ถœ์‹œํ–ˆ๋Š”๋ฐ, ์ด๋Š” ์•ˆ์ •์ ์ด๊ณ  ๋„๋ฆฌ ์‚ฌ์šฉ๋  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ๋‹ค๊ณ  ์„ ์–ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๊ฐœ๋ฐœ์ž๋Š” ์†Œ์Šค ์ฝ”๋“œ ๊ฒŒ์‹œ๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ ์–ด์…ˆ๋ธ”๋ฆฌ๋งŒ ์ œ๊ณตํ•˜๋„๋ก ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ Pyston์„ ๋‹ค์‹œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ๋งŒ๋“ค๊ณ  ํšŒ์‚ฌ๋ฅผ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ๋œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ๋กœ ์ด์ „ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ Pyston์—์„œ ํ‘œ์ค€ CPython์œผ๋กœ ์ตœ์ ํ™”๋ฅผ ์ด์ „ํ•  ๊ฐ€๋Šฅ์„ฑ๋„ ๊ณ ๋ ค๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Pyston 2.2๋Š” ์›น ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‚ด์žฌ๋œ ๋กœ๋“œ๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ์—์„œ ํ‘œ์ค€ Python๋ณด๋‹ค 30% ๋” ๋น ๋ฅธ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด์ „ ๋ฆด๋ฆฌ์Šค์— ๋น„ํ•ด Pyston 2.2์˜ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฃผ๋กœ ์ƒˆ๋กœ์šด ์˜์—ญ์— ๋Œ€ํ•œ ์ตœ์ ํ™” ์ถ”๊ฐ€์™€ JIT ๋ฐ ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ฐœ์„ ์„ ํ†ตํ•ด ๋‹ฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ์ตœ์ ํ™” ์™ธ์—๋„ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋Š” CPython 3.8.8 ๋ถ„๊ธฐ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ „๋‹ฌํ•˜๋ฏ€๋กœ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ Python๊ณผ์˜ ํ˜ธํ™˜์„ฑ ์ธก๋ฉด์—์„œ Pyston ํ”„๋กœ์ ํŠธ๋Š” CPython๊ณผ ๊ฐ€์žฅ ํ˜ธํ™˜๋˜๋Š” ๋Œ€์ฒด ๊ตฌํ˜„์œผ๋กœ ์„ ์ „๋ฉ๋‹ˆ๋‹ค. Pyston์€ ๊ธฐ๋ณธ CPython ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ํฌํฌ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Pyston์€ C ์–ธ์–ด๋กœ ํ™•์žฅ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ C API๋ฅผ ํฌํ•จํ•˜์—ฌ CPython์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Pyston๊ณผ CPython์˜ ์ฃผ์š” ์ฐจ์ด์  ์ค‘์—๋Š” DynASM JIT ์‚ฌ์šฉ, ์ธ๋ผ์ธ ์บ์‹ฑ ๋ฐ ์ผ๋ฐ˜ ์ตœ์ ํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Pyston 2.2์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘์—๋Š” ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ์ฃผ์ง€๋งŒ ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ๋Š” ๊ฑฐ์˜ ์š”๊ตฌ๋˜์ง€ ์•Š๋Š” CPython์˜ ๋งŽ์€ ๋””๋ฒ„๊น… ๊ธฐ๋Šฅ์—์„œ ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์–ธ๊ธ‰๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ์ค‘ ์•ฝ 2%๋งŒ์ด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋””๋ฒ„๊น… ๋„๊ตฌ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์†๋„๊ฐ€ 2% ํ–ฅ์ƒ๋œ๋‹ค๋Š” ํ†ต๊ณ„๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€