CPython์ฉ JIT ์ปดํ์ผ๋ฌ๋ฅผ ๊ตฌํํ๋ Pyston-lite ํ์ฅ์ ์๋ก์ด ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. CPython ์ฝ๋๋ฒ ์ด์ค์์ ํฌํฌ๋ก ๋ณ๋๋ก ๊ฐ๋ฐ๋ Pyston ํ๋ก์ ํธ์ ๋ฌ๋ฆฌ Pyston-lite๋ ํ์ค Python ์ธํฐํ๋ฆฌํฐ(CPython)์ ์ฐ๊ฒฐํ๋๋ก ์ค๊ณ๋ ๋ฒ์ฉ ํ์ฅ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ์ ๋ฆด๋ฆฌ์ค๋ ์ด์ ์ ์ง์๋ 3.7 ๋ถ๊ธฐ ์ธ์๋ Python 3.9, 3.10 ๋ฐ 3.8 ๋ถ๊ธฐ์ ๋ํ ์ง์์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ์ ๋ช ํฉ๋๋ค.
Pyston-lite๋ฅผ ์ฌ์ฉํ๋ฉด PIP ๋๋ Conda ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๊ฐ ํ์ฅ์ ์ค์นํ์ฌ ์ธํฐํ๋ฆฌํฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ๊ธฐ๋ณธ Pyston ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Pyston-lite๋ ์ด๋ฏธ PyPI ๋ฐ Conda ์ ์ฅ์์ ํธ์คํ ๋์ด ์์ผ๋ฉฐ ์ด๋ฅผ ์ค์นํ๋ ค๋ฉด "pip install pyston_lite_autoload" ๋๋ "conda install pyston_lite_autoload -c pyston" ๋ช ๋ น์ ์คํํ๋ฉด ๋ฉ๋๋ค. pyston_lite(์ง์ JIT) ๋ฐ pyston_lite_autoload(Python ํ๋ก์ธ์ค๊ฐ ์์๋ ๋ ์๋ JIT ๋์ฒด ์ํ)์ ๋ ๊ฐ์ง ํจํค์ง๊ฐ ์ ๊ณต๋ฉ๋๋ค. pyston_lite.enable() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ ๋ก๋ ๋ชจ๋์ ์ค์นํ์ง ์๊ณ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ JIT ํฌํจ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ดํ ์๋ ์์ต๋๋ค.
๋ํ ๊ฐ๋ฐ์๋ค์ ์ด์ Pyston-lite๋ฅผ ์ฃผ์ ์ ํ์ผ๋ก ๊ณ ๋ คํ๊ณ ์๋ค๊ณ ๋ฐํํ์ต๋๋ค. ์ผ๋ฐ Pyston์ ๋ ๋์ ์ฑ๋ฅ์ ํ์ฉํ์ง๋ง ์ธํฐํ๋ฆฌํฐ๋ฅผ ๊ต์ฒดํด์ผ ํ๋ฏ๋ก ์ฌ์ฉ์ด ์ ํ๋๋ ๋ฐ๋ฉด Pyston-lite๋ ๊ธฐ์กด ๊ตฌ์ฑ์ ์ฝ๊ฒ ํตํฉ๋ฉ๋๋ค. Pyston์ ์กด์ฌํ๋ ํน์ ์ต์ ํ๋ ๊ฐ๋ฅํ๋ค๋ฉด ๊ธฐ๋ณธ CPython ๊ตฌ์ฑ์ผ๋ก ์ด์ ๋ฉ๋๋ค. ์ฅ๊ธฐ์ ์ผ๋ก๋ JIT ์ปดํ์ผ๋ฌ์ ๊ตฌํ์ CPython์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ก ์ด์ ํ๋ ค๋ ๋ฐ๋์ด ์์ต๋๋ค.
ํ์ฌ ํํ์์ CPython 3.8๊ณผ ๋น๊ตํ์ฌ Pyston-lite๋ฅผ ์ฌ์ฉํ๋ฉด ๋งคํฌ๋ก๋ฒค์น๋งํฌ ํ ์คํธ์์ 10%, ํ์ด ์ฑ๋ฅ ํ ์คํธ์์ 28% ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๋น๊ต๋ฅผ ์ํด ๋ ๋ฆฝํ Pyston์ ์ฌ์ฉํ ๋์ ์ฑ๋ฅ ํฅ์์ ๊ฐ๊ฐ 28%์ 65%์ ๋๋ค.
์ฃผ์ CPython 3.11 ํ๋ก์ ํธ์ ํฅํ ๋ฆด๋ฆฌ์ค์๋ ๋ฐ์ดํธ์ฝ๋ ์ํ ์บ์ฑ, ๋ ๋น ๋ฅธ ํจ์ ํธ์ถ, ์ผ๋ฐ ์์
์ ์ํ ๋น ๋ฅธ ์ธํฐํ๋ฆฌํฐ ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌผ๋ก Cinder ๋ฐ HotPy ํ๋ก์ ํธ์์ ์ค๋นํ ์ผ๋ถ ์ต์ ํ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ํ
์คํธ์์ CPython 3.11rc2๋ 12%์ 26%์ ์ฑ๋ฅ ํฅ์์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ์ด๋ Pyston-lite์ ์ฑ๋ฅ๊ณผ ๋น์ทํฉ๋๋ค(์๋ก์ด CPython๊ณผ Pyston-lite๋ ์๋ก ๋ค๋ฅธ ์ต์ ํ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Pyston-lite๋ฅผ CPython์ผ๋ก ํฌํ
ํฉ๋๋ค. 3.11์์๋ ์ด ๋ถ๊ธฐ์ ์ฑ๋ฅ์ด ๋์ฑ ํฅ์๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru