Pyston-lite, рдиреЗрдЯрд┐рдн рдкрд╛рдЗрдердирдХреЛ рд▓рд╛рдЧрд┐ JIT рдХрдореНрдкрд╛рдЗрд▓рд░ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдпреЛ

рдЖрдзреБрдирд┐рдХ JIT рдХрдореНрдкрд╛рдЗрд▓реЗрд╢рди рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд╛рдЗрдерди рднрд╛рд╖рд╛рдХреЛ рдЙрдЪреНрдЪ-рд╕рдореНрдкрд╛рджрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ Pyston рдкрд░рд┐рдпреЛрдЬрдирд╛рдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ CPython рдХреЛ рд▓рд╛рдЧрд┐ JIT рдХрдореНрдкрд╛рдЗрд▓рд░рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде Pyston-lite рд╡рд┐рд╕реНрддрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реЗред рдЬрдмрдХрд┐ Pyston CPython codebase рдХреЛ рдПрдХ рд╢рд╛рдЦрд╛ рд╣реЛ рд░ рдЫреБрдЯреНрдЯреИ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, Pyston-lite рд▓рд╛рдИ рдорд╛рдирдХ Python рдЕрдиреБрд╡рд╛рджрдХ (CPython) рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╡рд┐рд╕реНрддрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫред

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 (рдкрд╛рдЗрдерди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реБ рдЧрд░реНрджрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд JIT рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрджрдЫ)ред pyston_lite.enable() рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдЯреЛрд▓реЛрдб рдореЛрдбреНрдпреБрд▓ рд╕реНрдерд╛рдкрдирд╛ рдирдЧрд░реАрдХрди рдПрдкреНрд▓рд┐рдХреЗрд╕рди рднрд┐рддреНрд░рдмрд╛рдЯ JIT рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд▓рд╛рдИ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдкрдорд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдкрдирд┐ рд╕рдореНрднрд╡ рдЫред

рдпрджреНрдпрдкрд┐ Pyston-lite рд▓реЗ Pyston рдорд╛ рдЙрдкрд▓рдмреНрдз рд╕рдмреИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдХрднрд░ рдЧрд░реНрджреИрди, рдпрд╕рдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рдирд┐рдпрдорд┐рдд Python 10 рдХреЛ рддреБрд▓рдирд╛рдорд╛ рд▓рдЧрднрдЧ 25-3.8% рд▓реЗ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫред рднрд╡рд┐рд╖реНрдпрдорд╛, рдпреЛ Pyston рдорд╛ рдЙрдкрд╕реНрдерд┐рдд рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ Pyston-lite рдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдЫ, рд╕рд╛рдереИ CPython рдХреЛ рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиреЗ (рдкрд╣рд┐рд▓реЛ рд░рд┐рд▓реАрдЬрд▓реЗ рдорд╛рддреНрд░ Python 3.8 рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ)ред рдердк рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ JIT рдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ API рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди CPython рдЯреЛрд▓реАрд╕рдБрдЧрдХреЛ рд╕рд╣рдХрд╛рд░реНрдп рд╕рдорд╛рд╡реЗрд╢ рдЫ, рдЬрд╕рд▓реЗ Python рдХреЛ рдХрд╛рдордорд╛ рдердк рдкреВрд░реНрдг рдирд┐рдпрдиреНрддреНрд░рдгрдХреЛ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдкрд╛рдЗрдерди рей.резреи рд╢рд╛рдЦрд╛рдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдЫрд▓рдлрд▓ рднрдЗрд░рд╣реЗрдХреЛ рдЫред рдЖрджрд░реНрд╢ рд░реВрдкрдорд╛, Pyston рдмрд╛рдЯ рд╕рдмреИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░рдорд╛ рд╕рд╛рд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░рд┐рдБрджреИрдЫ, рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ CPython рдлреЛрд░реНрдХ рдХрд╛рдпрдо рд░рд╛рдЦреНрдирдмрд╛рдЯ рдмрдЪреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред

Pyston-lite рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд Pyston 2.3.4 рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдЕрдкрдбреЗрдЯ рдкрдирд┐ рдЬрд╛рд░реА рдЧрд░реНтАНрдпреЛ, рдЬрд╕рд▓реЗ рдирдпрд╛рдБ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдкрд╛рдЗрдкрд░рдлрд░реНрдордиреНрд╕ рдЯреЗрд╕реНрдЯрдорд╛, рд╕рдВрд╕реНрдХрд░рдг 2.3.4 рд░рд┐рд▓реАрдЬ 2.3.3 рднрдиреНрджрд╛ рд▓рдЧрднрдЧ 6% рдЫрд┐рдЯреЛ рдЫред CPython рдХреЛ рддреБрд▓рдирд╛рдорд╛ рд╕рдордЧреНрд░ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн 66% рдорд╛ рдЕрдиреБрдорд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред

рдердк рд░реВрдкрдорд╛, рд╣рд╛рдореА рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛCPython 3.11 рд╡рд┐рдХрд╛рд╕ рдЪрдХреНрд░ рднрд┐рддреНрд░ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХрд╛ рдЕрдиреБрдХреВрд▓рдирд╣рд░реВ рдиреЛрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рдЬрд╕рд▓реЗ рдХреЗрд╣реА рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛ 25% рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдмрдврд╛рдЙрди рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, CPython 3.11 рдорд╛, рдЖрдзрд╛рд░рднреВрдд рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рдмрд╛рдЗрдЯрдХреЛрдб рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛рд╕ рдЧрд░реНрдиреЗ рджрдХреНрд╖рддрд╛ рдмрдврд╛рдЗрдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ 10-15% рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдХреЛ рд╕реБрд░реБрд╡рд╛рддрд▓рд╛рдИ рдЧрддрд┐ рджрд┐рдиреЗрдЫред рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рд╣рд░реВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рджреНрд░реБрдд рдмрдирд╛рдЗрдПрдХрд╛ рдЫрдиреН рд░ рдорд╛рдирдХ рд╕рдЮреНрдЪрд╛рд▓рдирдХрд╛ рд╡рд┐рд╢реЗрд╖ рджреНрд░реБрдд рдЕрдиреБрд╡рд╛рджрдХрд╣рд░реВ рдердкрд┐рдПрдХрд╛ рдЫрдиреНред рд╕рд┐рдиреНрдбрд░ рд░ HotPy рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХрд╛ рдХреЗрд╣реА рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдкреЛрд░реНрдЯ рдЧрд░реНрдиреЗ рдХрд╛рдо рдкрдирд┐ рднрдЗрд░рд╣реЗрдХреЛ рдЫред

рдердк рд░реВрдкрдорд╛, рдиреЛрдЧрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрд┐рддреНрд░, рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рджреЛрднрд╛рд╖реЗ рд▓рдХ (GIL, Global Interpreter Lock) рдмрд┐рдирд╛ CPython рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдореЛрдбрдорд╛ рдХрд╛рдо рднрдЗрд░рд╣реЗрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбрд╣рд░реВрдмрд╛рдЯ рд╕рд╛рдЭрд╛ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкрд╣реБрдБрдЪрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИрди, рдЬрд╕рд▓реЗ рдмрд╣реБрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░реАрдХрд░рдгрд▓рд╛рдИ рд░реЛрдХреНрдЫред - рдХреЛрд░ рдкреНрд░рдгрд╛рд▓реАред GIL рд╕рдорд╕реНрдпрд╛рдХреЛ рдЕрд░реНрдХреЛ рд╕рдорд╛рдзрд╛рдирдХреЛ рд░реВрдкрдорд╛, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднрд┐рддреНрд░ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рджреЛрднрд╛рд╖реЗрд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ GIL рдмрд╛рдБрдзреНрдиреЗ рдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХреЛ рдЫ (рдзреЗрд░реИ рдЕрдиреБрд╡рд╛рджрдХрд╣рд░реВ рдПрдЙрдЯреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдЪрд▓реНрди рд╕рдХреНрдЫрдиреН, рддрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рджрдХреНрд╖рддрд╛ GIL рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ)ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди