ะ ะฐะทัะฐะฑะพััะธะบะธ ะฟัะพะตะบัะฐ Pyston, ะฟัะตะดะปะฐะณะฐััะตะณะพ ะฒััะพะบะพะฟัะพะธะทะฒะพะดะธัะตะปัะฝัั ัะตะฐะปะธะทะฐัะธั ัะทัะบะฐ Python, ะธัะฟะพะปัะทััััั ัะพะฒัะตะผะตะฝะฝัะต ัะตั ะฝะพะปะพะณะธะธ JIT-ะบะพะผะฟะธะปััะธะธ, ะฟัะตะดััะฐะฒะธะปะธ ัะฐััะธัะตะฝะธะต Pyston-lite ั ัะตะฐะปะธะทะฐัะธะตะน JIT-ะบะพะผะฟะธะปััะพัะฐ ะดะปั CPython. ะัะปะธ Pyston ัะฒะปัะตััั ะพัะฒะตัะฒะปะตะฝะธะตะผ ะพั ะบะพะดะพะฒะพะน ะฑะฐะทั CPython ะธ ัะฐะทะฒะธะฒะฐะตััั ะพะฑะพัะพะฑะปะตะฝะฝะพ, ัะพ Pyston-lite ะพัะพัะผะปะตะฝ ะฒ ะฒะธะดะต ัะฝะธะฒะตััะฐะปัะฝะพะณะพ ัะฐััะธัะตะฝะธั, ะฟัะตะดะฝะฐะทะฝะฐัะตะฝะฝะพะณะพ ะดะปั ะฟะพะดะบะปััะตะฝะธั ะบ ััะฐัะฝะพะผั ะธะฝัะตัะฟัะตัะฐัะพัั Python (CPython).
Pyston-lite ะฟะพะทะฒะพะปัะตั ะธัะฟะพะปัะทะพะฒะฐัั ะฑะฐะทะพะฒัะต ัะตั ะฝะพะปะพะณะธะธ Pyston ะฑะตะท ะทะฐะผะตะฝั ะธะฝัะตัะฟัะตัะฐัะพัะฐ, ัะตัะตะท ัััะฐะฝะพะฒะบั ะดะพะฟะพะปะฝะธัะตะปัะฝะพะณะพ ัะฐััะธัะตะฝะธั ะฟัะธ ะฟะพะผะพัะธ ะฟะฐะบะตัะฝะพะณะพ ะผะตะฝะตะดะถะตัะฐ PIP ะธะปะธ Conda. Pyston-lite ัะถะต ัะฐะทะผะตััะฝ ะฒ ัะตะฟะพะทะธัะพัะธัั PyPI ะธ Conda ะธ ะดะปั ัััะฐะฝะพะฒะบะธ ะดะพััะฐัะพัะฝะพ ะฒัะฟะพะปะฝะธัั ะบะพะผะฐะฝะดั ยซpip install pyston_lite_autoloadยป ะธะปะธ ยซconda install pyston_lite_autoload -c pystonยป. ะัะตะดะปะพะถะตะฝะพ ะดะฒะฐ ะฟะฐะบะตัะฐ: pyston_lite (ะฝะตะฟะพััะตะดััะฒะตะฝะฝะพ JIT) ะธ pyston_lite_autoload (ะฒัะฟะพะปะฝัะตั ะฐะฒัะพะผะฐัะธัะตัะบัั ะฟะพะดััะฐะฝะพะฒะบั JIT ะฟัะธ ะทะฐะฟััะบะต ะฟัะพัะตััะฐ Python). ะะพะทะผะพะถะฝะพ ะธ ะฟัะพะณัะฐะผะผะฝะพะต ัะฟัะฐะฒะปะตะฝะธะต ะฒะบะปััะตะฝะธะตะผ JIT ะธะท ะฟัะธะปะพะถะตะฝะธั ะฑะตะท ัััะฐะฝะพะฒะบะธ ะผะพะดัะปั autoload, ะธัะฟะพะปัะทัั ััะฝะบัะธั pyston_lite.enable().
ะะตัะผะพััั ะฝะฐ ัะพ, ััะพ Pyston-lite ะฝะต ะพั ะฒะฐััะฒะฐะตั ะฒัะต ะดะพัััะฟะฝัะต ะฒ Pyston ะพะฟัะธะผะธะทะฐัะธะธ, ะตะณะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะฟะพะทะฒะพะปัะตั ะฟะพะฒััะธัั ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััั ะฟัะธะผะตัะฝะพ 10-25% ะฟะพ ััะฐะฒะฝะตะฝะธั ั ะพะฑััะฝัะผ Python 3.8. ะ ะดะฐะปัะฝะตะนัะตะผ ะฟะปะฐะฝะธััะตััั ะฟะตัะตะฝะพั ะฒ Pyston-lite ะฑะพะปััะธะฝััะฒะฐ ะพะฟัะธะผะธะทะฐัะธะน, ะฟัะธัััััะฒัััะธั ะฒ Pyston, ะฐ ัะฐะบะถะต ัะฐััะธัะตะฝะธะต ะฟะพะดะดะตัะถะธะฒะฐะตะผัั ะฒะตััะธะน CPython (ะฟะตัะฒัะน ะฒัะฟััะบ ะฟะพะดะดะตัะถะธะฒะฐะตั ัะพะปัะบะพ Python 3.8). ะะท ะฑะพะปะตะต ะณะปะพะฑะฐะปัะฝัั ะฟะปะฐะฝะพะฒ ะพัะผะตัะฐะตััั ัะพะฒะผะตััะฝะฐั ัะฐะฑะพัะฐ ั ะบะพะผะฐะฝะดะพะน CPython ะฟะพ ัะตะฐะปะธะทะฐัะธะธ ะฝะพะฒัั API ะดะปั JIT, ะฟะพะทะฒะพะปัััะธั ะฑะพะปะตะต ะฟะพะปะฝะพ ะบะพะฝััะพะปะธัะพะฒะฐัั ัะฐะฑะพัั Python. ะะฑััะถะดะฐะตััั ะฒะบะปััะตะฝะธะต ะฟัะตะดะปะพะถะตะฝะฝัั ะธะทะผะตะฝะตะฝะธะน ะฒ ะฒะตัะบั Python 3.12. ะ ะธะดะตะฐะปะต ัะฐััะผะฐััะธะฒะฐะตััั ะฒะพะทะผะพะถะฝะพััั ะฟะตัะตะฝะพัะฐ ะฒัะตะน ััะฝะบัะธะพะฝะฐะปัะฝะพััะธ ะธะท Pyston ะฒ ัะฐััะธัะตะฝะธะต, ััะพ ะฟะพะทะฒะพะปะธั ัะนัะธ ะพั ะฟะพะดะดะตัะถะฐะฝะธั ัะพะฑััะฒะตะฝะฝะพะณะพ ัะพัะบะฐ CPython.
ะัะพะผะต Pyston-lite ะฟัะพะตะบัะพะผ ัะฐะบะถะต ะฒัะฟััะตะฝะพ ะพะฑะฝะพะฒะปะตะฝะธะต ะฟะพะปะฝะพัะตะฝะฝะพะณะพ ะฟะฐะบะตัะฐ Pyston 2.3.4, ะฒ ะบะพัะพัะพะผ ะฟัะตะดะปะพะถะตะฝั ะฝะพะฒัะต ะพะฟัะธะผะธะทะฐัะธะธ. ะ ัะตััะต pyperformance ะฒะตััะธั 2.3.4 ะฑััััะตะต ะฒัะฟััะบะฐ 2.3.3 ะฟัะธะผะตัะฝะพ ะฝะฐ 6%. ะะฑัะธะน ะฒัะธะณััั ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััะธ ะฟะพ ััะฐะฒะฝะตะฝะธั ั CPython ะพัะตะฝะธะฒะฐะตััั ะฒ 66%.
ะะพะฟะพะปะฝะธัะตะปัะฝะพ ะผะพะถะฝะพ ะพัะผะตัะธัั ัะฐะทะฒะธะฒะฐะตะผัะต ะฒ ัะฐะผะบะฐั ัะธะบะปะฐ ัะฐะทัะฐะฑะพัะบะธ CPython 3.11 ะพะฟัะธะผะธะทะฐัะธะธ ะฒ ะพัะฝะพะฒะฝะพะผ ะฟัะพะตะบัะต, ะบะพัะพััะต ะฒ ะฝะตะบะพัะพััั ัะตััะฐั ะฟะพะทะฒะพะปะธะปะธ ะฟะพะดะฝััั ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััั ะฝะฐ 25%. ะะฐะฟัะธะผะตั, ะฒ CPython 3.11 ะฟะพะฒััะตะฝะฐ ัััะตะบัะธะฒะฝะพััั ะบััะธัะพะฒะฐะฝะธั ัะพััะพัะฝะธั ะฑะฐะนัะบะพะดะฐ ะฑะฐะทะพะฒัั ะผะพะดัะปะตะน, ััะพ ะฝะฐ 10-15% ััะบะพัะธั ะทะฐะฟััะบ ัะบัะธะฟัะพะฒ. ะะฝะฐัะธัะตะปัะฝะพ ััะบะพัะตะฝ ะฒัะทะพะฒ ััะฝะบัะธะน ะธ ะดะพะฑะฐะฒะปะตะฝั ัะฟะตัะธะฐะปะธะทะธัะพะฒะฐะฝะฝัะต ะฑัััััะต ะธะฝัะตัะฟัะตัะฐัะพัั ัะธะฟะพะฒัั ะพะฟะตัะฐัะธะน. ะขะฐะบะถะต ะฒะตะดัััั ัะฐะฑะพัะฐ ะฟะพ ะฟะตัะตะฝะพัั ะฝะตะบะพัะพััั ะพะฟัะธะผะธะทะฐัะธะธ, ะฟะพะดะณะพัะพะฒะปะตะฝะฝัั ะฟัะพะตะบัะฐะผะธ Cinder ะธ HotPy.
ะะพะฟะพะปะฝะธัะตะปัะฝะพ ะฒ ัะฐะผะบะฐั
ะฟัะพะตะบัะฐ nogil ะฒะตะดัััั ัะฐะฑะพัะฐ ะฝะฐะด ัะบัะฟะตัะธะผะตะฝัะฐะปัะฝัะผ ัะตะถะธะผะพะผ ัะฑะพัะบะธ CPython ะฑะตะท ะณะปะพะฑะฐะปัะฝะพะน ะฑะปะพะบะธัะพะฒะบะธ ะธะฝัะตัะฟัะตัะฐัะพัะฐ (GIL, Global Interpreter Lock), ะฝะต ะดะพะฟััะบะฐััะตะน ะฟะฐัะฐะปะปะตะปัะฝะพะต ะพะฑัะฐัะตะฝะธะต ะบ ัะฐะทะดะตะปัะตะผัะผ ะพะฑัะตะบัะฐะผ ะธะท ัะฐะทะฝัั
ะฟะพัะพะบะพะฒ, ััะพ ะผะตัะฐะตั ัะฐัะฟะฐัะฐะปะปะตะปะธะฒะฐะฝะธั ะพะฟะตัะฐัะธะน ะฝะฐ ะผะฝะพะณะพัะดะตัะฝัั
ัะธััะตะผะฐั
. ะ ะบะฐัะตััะฒะต ะดััะณะพะณะพ ะฒะฐัะธะฐะฝัะฐ ัะตัะตะฝะธั ะฟัะพะฑะปะตะผั ั GIL ัะฐะทะฒะธะฒะฐะตััั ะฒะพะทะผะพะถะฝะพััั ะฟัะธะฒัะทะบะธ ะพัะดะตะปัะฝะพะณะพ GIL ะบ ะบะฐะถะดะพะผั ะธะฝัะตัะฟัะตัะฐัะพัั, ะฒัะฟะพะปะฝัะตะผะพะผั ะฒะฝัััะธ ะฟัะพัะตััะฐ (ะฒ ะพะดะฝะพะผ ะฟัะพัะตััะต ะผะพะถะตั ะฒัะฟะพะปะฝััััั ะฝะตัะบะพะปัะบะพ ะธะฝัะตัะฟัะตัะฐัะพัะพะฒ, ะฝะพ ัััะตะบัะธะฒะฝะพััั ะธั
ะฟะฐัะฐะปะปะตะปัะฝะพะณะพ ะฒัะฟะพะปะฝะตะฝะธั ัะฟะธัะฐะตััั ะฒ GIL).
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru