Python์œผ๋กœ ์ž‘์„ฑ๋œ Python ๊ตฌํ˜„์ธ PyPy 7.2 ๋ฆด๋ฆฌ์Šค

ํ˜•์„ฑ๋œ ํ”„๋กœ์ ํŠธ ๋ฆด๋ฆฌ์Šค ํŒŒ์ดํŒŒ์ด 7.2, Python์œผ๋กœ ์ž‘์„ฑ๋œ Python ์–ธ์–ด ๊ตฌํ˜„์ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ •์ ์œผ๋กœ ์œ ํ˜•์ด ์ง€์ •๋œ ํ•˜์œ„ ์ง‘ํ•ฉ ์‚ฌ์šฉ). RํŒŒ์ด์ฌ, ์ œํ•œ๋œ Python). ์ด ๋ฆด๋ฆฌ์Šค๋Š” PyPy2.7 ๋ฐ PyPy3.6 ๋ถ„๊ธฐ์— ๋Œ€ํ•ด ๋™์‹œ์— ์ค€๋น„๋˜์–ด Python 2.7 ๋ฐ Python 3.6 ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฆด๋ฆฌ์Šค๋Š” Linux(x86, x86_64, PPC64, s390x, Aarch64, ARMv6 ๋˜๋Š” ARMv7 with VFPv3), macOS(x86_64), OpenBSD, FreeBSD ๋ฐ Windows(x86)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PyPy์˜ ํŠน๋ณ„ํ•œ ๊ธฐ๋Šฅ์€ JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ผ๋ถ€ ์š”์†Œ๋ฅผ ์ฆ‰์„์—์„œ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ํฐ ์„ฑ๋Šฅ ์ˆ˜์ค€ - ์ผ๋ถ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ PyPy๋Š” C ์–ธ์–ด(CPython)๋กœ Python์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ช‡ ๋ฐฐ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ๊ณ ์„ฑ๋Šฅ๊ณผ JIT ์ปดํŒŒ์ผ ์‚ฌ์šฉ์˜ ๋Œ€๊ฐ€๋Š” ๋” ๋†’์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•˜๊ณ  ์˜ค๋ž˜ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค(์˜ˆ: PyPy ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PyPy๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ)์˜ ์ด ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Š” CPython ์†Œ๋น„๋ฅผ XNUMX~XNUMX๋งŒํผ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ž„์Šค.

์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค๋Š” ์ด์ „ ๋ฒ ํƒ€ ๋ฒ„์ „์ด์—ˆ๋˜ Python 3.6์— ๋Œ€ํ•œ ์ง€์›์„ ์•ˆ์ •ํ™”ํ•˜๊ณ  Aarch64(ARM64) ์•„ํ‚คํ…์ฒ˜์šฉ JIT๋ฅผ ๊ตฌํ˜„ํ•œ ์ ์ด ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ›จ์”ฌ ๋” ๋น ๋ฅด๊ณ , ๋” ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, JIT์— ์ตœ์ ํ™”๋œ ์ƒˆ๋กœ์šด JSON ๋””์ฝ”๋”๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CFFI 1.13(C Foreign Function Interface) ๋ชจ๋“ˆ์€ C ๋ฐ C++๋กœ ์ž‘์„ฑ๋œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. C ์ฝ”๋“œ์™€์˜ ์ƒํ˜ธ ์šด์šฉ์—๋Š” CFFI๋ฅผ ๊ถŒ์žฅํ•˜๊ณ , C++ ์ฝ”๋“œ์™€์˜ ์ƒํ˜ธ ์šด์šฉ์—๋Š” cppyy๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. CFFI ๊ธฐ๋ฐ˜ _ssl ๋ชจ๋“ˆ์ด PyPy2.7 ๋ถ„๊ธฐ๋กœ ๋ฐฑํฌํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. _hashlib ๋ฐ _crypt ๋ชจ๋“ˆ์€ CFFI๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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