рдлреЗрд╕рдмреБрдХ рдУрдкрди рд╕реЛрд░реНрд╕реНрдб рд╕рд┐рдВрдбрд░, рдЗрдиреНрд╕реНрдЯрд╛рдЧреНрд░рд╛рдорджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реЗрд▓рд╛ CPython рдЪрд╛ рдПрдХ рдХрд╛рдЯрд╛

Facebook рдиреЗ Project Cinder рд╕рд╛рдареА рд╕реЛрд░реНрд╕ рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ, CPython 3.8.5 рдЪрд╛ рдПрдХ рдХрд╛рдЯрд╛, Python рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪрд╛ рдореБрдЦреНрдп рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА. рд╕рд┐рдВрдбрд░рдЪрд╛ рд╡рд╛рдкрд░ Facebook рдЪреНрдпрд╛ рдЙрддреНрдкрд╛рджрди рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреНрдпреЗ Instagram рд▓рд╛ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЛ.

рдореБрдЦреНрдп CPython рдлреНрд░реЗрдорд╡рд░реНрдХрдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╢рдХреНрдпрддреЗрд╡рд░ рдЪрд░реНрдЪрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ CPython рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдд рдЧреБрдВрддрд▓реЗрд▓реНрдпрд╛ рдЗрддрд░ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдирд╛ рдорджрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ. Facebook рдЪрд╛ Cinder рд▓рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рд░реВрдкрд╛рдд рд╕рдорд░реНрдерди рджреЗрдгреНрдпрд╛рдЪрд╛ рд╣реЗрддреВ рдирд╛рд╣реА рдЖрдгрд┐ рдХреЛрдб рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдореНрдмрд┐рдВрдЧ рдЖрдгрд┐ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рд╢рд┐рд╡рд╛рдп, рдХрдВрдкрдиреАрдЪреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдлреЙрд░реНрдордордзреНрдпреЗ рд╕рд╛рджрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рддреЗ CPython рдЪрд╛ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгреВрди Cinder рдЪрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рджреЗрдЦреАрд▓ рдХрд░рдд рдирд╛рд╣реАрдд - рд╡рд┐рдХрд╛рд╕рд╛рдЪреЗ рдореБрдЦреНрдп рдзреНрдпреЗрдп рдореНрд╣рдгрдЬреЗ CPython рд╕реНрд╡рддрдГ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдЪреА рдЗрдЪреНрдЫрд╛.

рд╕рд┐рдВрдбрд░ рдХреЛрдб рдмрд░реНтАНрдпрд╛рдкреИрдХреА рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рддрдкрд╛рд╕рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕рдорд╕реНрдпрд╛ рдУрд│рдЦрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛ рд╕реНрд╡рддрдГ рд╕реЛрдбрд╡рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрддреАрд▓, рдХрд╛рд░рдг Facebook рдмрд╛рд╣реНрдп рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢рд╛рдВрдирд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдИрд▓ рдЖрдгрд┐ рд╡рд┐рдирдВрддреНрдпрд╛ рдкреБрд▓ рдХрд░реЗрд▓ рдпрд╛рдЪреА рд╣рдореА рджреЗрдд тАЛтАЛтАЛтАЛрдирд╛рд╣реА. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, Facebook рд╕рдореБрджрд╛рдпрд╛рд╕рд╣ рд░рдЪрдирд╛рддреНрдордХ рд╕рд╣рдХрд╛рд░реНрдп рд╡рдЧрд│рдд рдирд╛рд╣реА рдЖрдгрд┐ рд╕рд┐рдВрдбрд░рд▓рд╛ рдЖрдгрдЦреА рд╡реЗрдЧрд╡рд╛рди рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рдХрд┐рдВрд╡рд╛ CPython рдЪреНрдпрд╛ рдореБрдЦреНрдп рднрд╛рдЧрд╛рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрджрд▓рд╛рдВрдЪреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд╕реЗ рдЬрд▓рдж рдХрд░рд╛рд╡реЗ рдпрд╛рд╡рд░реАрд▓ рдХрд▓реНрдкрдирд╛рдВрд╡рд░ рдЪрд░реНрдЪрд╛ рдХрд░рдгреНрдпрд╛рд╕ рддрдпрд╛рд░ рдЖрд╣реЗ.

рд╕рд┐рдВрдбрд░рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реА рдореБрдЦреНрдп рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдиреНрд╕:

  • рдмрд╛рдЗрдЯрдХреЛрдбрдЪреЗ рдЗрдирд▓рд╛рдЗрди рдХреЕрд╢рд┐рдВрдЧ ("рд╢реЕрдбреЛ рдмрд╛рдпрдХреЛрдб"). рдпрд╛ рдкрджреНрдзрддреАрдЪреЗ рд╕рд╛рд░ рдореНрд╣рдгрдЬреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ opcode рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреА рдУрд│рдЦ рдкрдЯрд╡рдгреЗ рдЬреНрдпрд╛рд▓рд╛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рдЕрд╢рд╛ opcode рд▓рд╛ рд╡реЗрдЧрд╡рд╛рди рд╡рд┐рд╢реЗрд╖ рдкрд░реНрдпрд╛рдпрд╛рдВрд╕рд╣ рдЧрддрд┐рдорд╛рдирдкрдгреЗ рдмрджрд▓рдгреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд╛рд░рдВрд╡рд╛рд░ рдореНрд╣рдЯрд▓реЗ рдЬрд╛рдгрд╛рд░реЗ рдлрдВрдХреНрд╢рдиреНрд╕ рдмрджрд▓рдгреЗ).
  • рдЙрддреНрд╕реБрдХ рдХреЛрд░рдЯреАрди рдореВрд▓реНрдпрд╛рдВрдХрди. рддрддреНрдХрд╛рд│ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ async рдлрдВрдХреНрд╢рди рдХреЙрд▓реНрд╕рд╕рд╛рдареА (рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗрд▓реНрдпрд╛рдиреЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реЛрдд рдирд╛рд╣реА рдЖрдгрд┐ рдлрдВрдХреНрд╢рди рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯрдордзреНрдпреЗ рдЖрдзреА рдкреЛрд╣реЛрдЪрддреЗ), рдЕрд╢рд╛ рдлрдВрдХреНрд╢рдиреНрд╕рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдереЗрдЯ рдХреЙрд░реЛрдЯреАрди рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рдХрд┐рдВрд╡рд╛ рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реВрдкрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рди рдХрд░рддрд╛ рдмрджрд▓рд▓рд╛ рдЬрд╛рддреЛ. Facebook рдХреЛрдбрдордзреНрдпреЗ рдЬреЛ рдЬреЛрд░рджрд╛рд░рдкрдгреЗ async/await рд╡рд╛рдкрд░рддреЛ, рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдЪрд╛ рдкрд░рд┐рдгрд╛рдо рд╕реБрдорд╛рд░реЗ 5% рдЪреНрдпрд╛ рд╡реЗрдЧрд╛рдиреЗ рд╣реЛрддреЛ.
  • рд╡реИрдпрдХреНрддрд┐рдХ рдкрджреНрдзрддреА рдЖрдгрд┐ рдХрд╛рд░реНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рдирд┐рд╡рдбрдХ JIT рд╕рдВрдХрд▓рди (рдкрджреНрдзрдд-рдПрдХ-рд╡реЗрд│реЗрд╕). тАЬ-X jitтАЭ рдкрд░реНрдпрд╛рдпрд╛рджреНрд╡рд╛рд░реЗ рдХрд┐рдВрд╡рд╛ PYTHONJIT=1 рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рджреНрд╡рд╛рд░реЗ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдмрд░реНтАНрдпрд╛рдЪ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЪрд╛рдЪрдгреНрдпрд╛ 1.5-4 рдкрдЯреАрдиреЗ рд╡реЗрдЧрд╡рд╛рди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. JIT рд╕рдВрдХрд▓рди рд╣реЗ рдХреЗрд╡рд│ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЪрд╛рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареАрдЪ рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдХреНрд╡рдЪрд┐рддрдЪ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рддреЗ рд╡рд╛рдкрд░рдгреЗ рдЙрдЪрд┐рдд рдирд╛рд╣реА, рдЬреНрдпрд╛рдЪреЗ рд╕рдВрдХрд▓рди рдУрд╡реНрд╣рд░рд╣реЗрдб рдХреЗрд╡рд│ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрдореА рдХрд░реВ рд╢рдХрддреЗ.

    тАЬ-X jit-list-file=/path/to/jitlist.txtтАЭ рдХрд┐рдВрд╡рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ тАЬPYTHONJITLISTFILE=/path/to/jitlist.txtтАЭ рдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рджреНрд╡рд╛рд░реЗ рддреБрдореНрд╣реА рдлрдВрдХреНрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╕реВрдЪреАрд╕рд╣ рдлрд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛ рдЬреНрдпрд╛рд╕рд╛рдареА JIT рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ (рдкрде рд╕реНрд╡рд░реВрдк .to.module:funcname рдХрд┐рдВрд╡рд╛ path.to.module:ClassName.method_name). рдЬреНрдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА JIT рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рд╡реЗ рддреНрдпрд╛рдВрдЪреА рдпрд╛рджреА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рднрд╡рд┐рд╖реНрдпрд╛рдд, рдлрдВрдХреНрд╢рди рдХреЙрд▓рдЪреНрдпрд╛ рд╡рд╛рд░рдВрд╡рд╛рд░рддреЗрдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдбрд╛рдпрдиреЕрдорд┐рдХ JIT рд╕рдВрдХрд▓рдирд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ Instagram рд╡рд░ рд▓реЙрдиреНрдЪрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди, JIT рд╕рдВрдХрд▓рди рджреЗрдЦреАрд▓ Facebook рд╕рд╛рдареА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдпреЛрдЧреНрдп рдЖрд╣реЗ.

    JIT рдкреНрд░рдердо Python bytecode рд▓рд╛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдкреНрд░реЗрдЭреЗрдВрдЯреЗрд╢рди (HIR) рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ, рдЬреЗ Python bytecode рдЪреНрдпрд╛ рдЕрдЧрджреА рдЬрд╡рд│ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реНрдЯреЕрдХ-рдЖрдзрд╛рд░рд┐рдд рдРрд╡рдЬреА рд░рдЬрд┐рд╕реНрдЯрд░-рдЖрдзрд╛рд░рд┐рдд рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдкреНрд░рдХрд╛рд░ рдорд╛рд╣рд┐рддреА рдЖрдгрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рдкрд░рддреЗ. рдХрд╛рдордЧрд┐рд░реА-рдЧрдВрднреАрд░ рддрдкрд╢реАрд▓ (рдЬрд╕реЗ рдХреА рд╕рдВрджрд░реНрдн рдореЛрдЬрдгреА). HIR рдирдВрддрд░ SSA (рд╕реНрдЯреЕрдЯрд┐рдХ рд╕рд┐рдВрдЧрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ) рдлреЙрд░реНрдордордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдЪрд░рдгрд╛рдВрдордзреВрди рдЬрд╛рддреЗ рдЬреЗ рд╕рдВрджрд░реНрдн рдореЛрдЬрдгреА рдкрд░рд┐рдгрд╛рдо рдЖрдгрд┐ рдореЗрдорд░реА рд╡рд╛рдкрд░ рдбреЗрдЯрд╛ рд▓рдХреНрд╖рд╛рдд рдШреЗрддреЗ. рдкрд░рд┐рдгрд╛рдореА, рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖реЗрдЪреНрдпрд╛ рдЬрд╡рд│, рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд░рд┐рдкреНрд░реЗрдЭреЗрдВрдЯреЗрд╢рди (LIR) рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реЛрддреЗ. LIR-рдЖрдзрд╛рд░рд┐рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдЪреНрдпрд╛ рджреБрд╕рд░реНтАНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рдирдВрддрд░, asmjit рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░реВрди рдЕрд╕реЗрдВрдмрд▓реА рд╕реВрдЪрдирд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.

  • рдореЙрдбреНрдпреВрд▓реНрд╕рд╕рд╛рдареА рдХрдареЛрд░ рдореЛрдб. рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдордзреНрдпреЗ рддреАрди рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд: StrictModule рдЯрд╛рдЗрдк рдХрд░рд╛. рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬреЛ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реВ рд╢рдХрддреЛ рдХреА рдореЙрдбреНрдпреВрд▓рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪрд╛ рддреНрдпрд╛ рдореЙрдбреНрдпреВрд▓рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░рдЪреНрдпрд╛ рдХреЛрдбрд╡рд░ рдХреЛрдгрддрд╛рд╣реА рдкреНрд░рднрд╛рд╡ рдкрдбрдд рдирд╛рд╣реА. рдПрдХ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЛ рдХреА рдореЙрдбреНрдпреВрд▓ рдХрдареЛрд░ рдореЛрдбрдордзреНрдпреЗ рдЖрд╣реЗрдд (рдХреЛрдб "рдЗрдореНрдкреЛрд░реНрдЯ __рд╕реНрдЯреНрд░рд┐рдХреНрдЯ__" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЛ), рдЗрддрд░ рдореЙрдбреНрдпреВрд▓реНрд╕рд╕рд╣ рдЫреЗрджрдирдмрд┐рдВрджреВ рдирд╕рд▓реНрдпрд╛рдЪреА рддрдкрд╛рд╕рдгреА рдХрд░рддреЛ рдЖрдгрд┐ рдХрдареЛрд░ рдореЙрдбреНрдпреВрд▓ sys.modules рдордзреНрдпреЗ StrictModule рдСрдмреНрдЬреЗрдХреНрдЯ рдореНрд╣рдгреВрди рд▓реЛрдб рдХрд░рддреЛ.
  • рд╕реНрдЯреЕрдЯрд┐рдХ рдкрд╛рдпрдерди рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдмрд╛рдЗрдЯрдХреЛрдб рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд╣реЗ рдЬреЛ рдЯрд╛рдЗрдк-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╛рдпрдЯреЗрдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯрд╛рдЗрдк рднрд╛рд╖реНрдп рд╡рд╛рдкрд░рддреЛ рдЬреЗ JIT рд╕рдВрдХрд▓рдирд╛рдореБрд│реЗ рдЬрд▓рдж рдЪрд╛рд▓рддреЗ. рдХрд╛рд╣реА рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ, рд╕реНрдЯреЕрдЯрд┐рдХ рдкрд╛рдпрдерди рдЖрдгрд┐ JIT рдЪреЗ рд╕рдВрдпреЛрдЬрди рдорд╛рдирдХ CPython рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд 7 рдкрдЯ рдкрд░реНрдпрдВрдд рдХрд╛рдордЧрд┐рд░реА рд╕реБрдзрд╛рд░рдгрд╛ рджрд░реНрд╢рд╡рддреЗ. рдмрд░реНтАНрдпрд╛рдЪ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ, MyPyC рдЖрдгрд┐ Cython рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рд╡рд╛рдкрд░реВрди рдкрд░рд┐рдгрд╛рдо рдЬрд╡рд│рдкрд╛рд╕ рдЕрд╕рдгреНрдпрд╛рдЪрд╛ рдЕрдВрджрд╛рдЬ рдЖрд╣реЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛