рдЖрдк рд╕рднреА рдХреЛ рдкрд╛рдпрдерди рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛

рдЖрдорддреМрд░ рдкрд░, рдЬрдм рдЖрдк рдкрд╛рдпрдерди рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдФрд░ рд╕реНрдореГрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕реЗ рд╣реА рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдкрд╛рдпрдерди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдиреАрдЪреЗ рд╕реЗ рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ рдЬреАрд╕реА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрд░


рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдкрд╛рдпрдерди рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реА рд╕рднреА рдореЗрдореЛрд░реА рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдЫреЛрдЯреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ 512 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдХрдо рд╣реИ)ред рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рд╕реНрдореГрддрд┐ рдХреЗ рдмрдбрд╝реЗ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрдИ рдЫреЛрдЯреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЬреИрд╕реЗ рд╣реА рдЫреЛрдЯреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдиреАрдЪреЗ рд╕реЗ рдореЗрдореЛрд░реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд╣реАрдВ рдЬрд╛рддреА рд╣реИ, рдкрд╛рдпрдерди рдЙрд╕реА рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ, рддреЛ рдкрд╛рдпрдерди рдЗрд╕реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдмреНрд▓реЙрдХ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдИ рдЕрд╕реНрдерд╛рдпреА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреА рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓реА рдкрд╛рдпрдерди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдореЗрдореЛрд░реА рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рдЕрдиреНрдп рд▓реЗрдЦ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо


рдорд╛рдирдХ рдЕрдЬрдЧрд░ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ (CPython) рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рджреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╕рдВрджрд░реНрдн рдЧрд┐рдирддреА рдФрд░ рдЬреЗрдиреЗрд░рд┐рдХ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ (рдЗрд╕рдХреЗ рдмрд╛рдж GC), рдЬрд┐рд╕реЗ рдкрд╛рдпрдерди рд╕реЗ рдорд╛рдирдХ gc рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рд▓рд┐рдВрдХ рдЧрдгрдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рдХреБрд╢рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдПрдХ рдмрдбрд╝реА рдЦрд╛рдореА рд╣реИред рд╡рд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╣реИ рдХрд┐ рдЕрдЬрдЧрд░ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд▓реЗрдХреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬреЗрдиреЗрд╢рдирд▓ рдЬреАрд╕реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИред

рдкрд╛рдпрдерди рдореЗрдВ, рд╕рдВрджрд░реНрдн рдЧрдгрдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореМрд▓рд┐рдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЬреАрд╕реА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓рд┐рдВрдХ рдХреА рдЧрд┐рдирддреА рдПрд▓реНрдЧреЛрд░рд┐рдердо


рд▓рд┐рдВрдХ рдЧрд┐рдирддреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЬреИрд╕реЗ рд╣реА рд╡реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдкрд╛рдпрдерди рдореЗрдВ, рдЪрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЬрдм рдЖрдк рдХрд┐рд╕реА рдирдП рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдЗрд╕ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЪрд░ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдПрдХрд╛рдзрд┐рдХ рдЪрд░ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд╛рдпрдерди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝реАрд▓реНрдб (рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░) рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдПрдХ рд╕реЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд▓рд┐рдВрдХ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдлрд╝реАрд▓реНрдб рдПрдХ рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред

рд▓рд┐рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рдиреЗ рдкрд░ рдЙрджрд╛рд╣рд░рдг:

  • рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░
  • рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛
  • рд╢реАрдЯ рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдбрд╛рд▓реЗрдВ (рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ)
  • рдлрд╛рд░реНрдо рдлреВ = рдмрд╛рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг (рдлреВ рдмрд╛рд░ рдХреЗ рд╕рдорд╛рди рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ)

рдЬреИрд╕реЗ рд╣реА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░ рд╢реВрдиреНрдп рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рджреБрднрд╛рд╖рд┐рдпрд╛ рд╡рд╕реНрддреБ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рджреВрд░рд╕реНрде рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдВрдХ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпреЗ рд▓рд┐рдВрдХ рднреА рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рджреВрд╕рд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рд╕реВрдЪреА рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕рдВрджрд░реНрдн рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рд╕реВрдЪреА рдХреЗ рднреАрддрд░ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рдФрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЪрд░ рдЬрд┐рдиреНрд╣реЗрдВ рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдпреЛрдВ, рд╡рд░реНрдЧреЛрдВ рдФрд░ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрдиреНрд╣реЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдРрд╕реЗ рдЪрд░реЛрдВ рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ рдкрд╛рдпрдерди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЬреАрд╡рди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрднреА рднреА рд╢реВрдиреНрдп рддрдХ рдирд╣реАрдВ рдЬрд╛рддреА рд╣реИред

рдХрд┐рд╕реА рдмреНрд▓реЙрдХ (рдлрд╝рдВрдХреНрд╢рди, рдХреНрд▓рд╛рд╕) рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдореЗрдВ рд▓реЛрдХрд▓ рд╡рд┐рдЬрд┐рдмрд┐рд▓рд┐рдЯреА рд╣реЛрддреА рд╣реИ (рдпрд╛рдиреА рд╡реЗ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ)ред рдЬреИрд╕реЗ рд╣реА рдЕрдЬрдЧрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдмреНрд▓реЙрдХ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдпрд╣ рдЙрд╕рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд╛рдиреАрдп рдЪрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рднреА рд▓рд┐рдВрдХ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЖрдк рд╣рдореЗрд╢рд╛ sys.getrefcount рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд▓рд┐рдВрдХ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:

 foo = [] # 2 ,    foo    getrefcount print(sys.getrefcount(foo)) def bar(a): # 4  #  foo,   (a), getrefcount       print(sys.getrefcount(a)) bar(foo) # 2 ,      print(sys.getrefcount(foo)) 

рдорд╛рдирдХ рджреБрднрд╛рд╖рд┐рдпрд╛ (рд╕реАрдкреАрдереЙрди) рдПрдХ рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдмрд╣рд╕ рд╣реИред рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЧрдгрдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдкрд░рд┐рдкрддреНрд░ рд▓рд┐рдВрдХ, рдЕрд╡рд░реБрджреНрдз рдзрд╛рдЧреЗ, рд╕рд╛рде рд╣реА рдореЗрдореЛрд░реА рдФрд░ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд╣реЗрдбред

рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рддреБрд░рдВрдд рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣реА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░


рдЬрдм рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрджрд░реНрдн рдЧрд┐рдирддреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреНрд▓рд╛рд╕рд┐рдХ рд▓рд┐рдВрдХ рдХрд╛рдЙрдВрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдПрдХ рдмрдбрд╝реА рдЦрд╛рдореА рд╣реИ - рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдкрд░рд┐рдкрддреНрд░ рд▓рд┐рдВрдХ рдХреИрд╕реЗ рдЦреЛрдЬрдирд╛ рд╣реИред рд▓реВрдкрдмреИрдХ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рджреЛ рдЙрджрд╛рд╣рд░рдг:

рдЫрд╡рд┐

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, object1 рдСрдмреНрдЬреЗрдХреНрдЯ рдЦреБрдж рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ lst рдСрдмреНрдЬреЗрдХреНрдЯ 2 рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП, рд╕рдВрджрд░реНрдн рд╕рдВрдЦреНрдпрд╛ рд╣рдореЗрд╢рд╛ 1 рд╣реЛрдЧреАред

рдкрд╛рдпрдерди рдбреЗрдореЛ:

 import gc #  ctypes        class PyObject(ctypes.Structure): _fields_ = [("refcnt", ctypes.c_long)] gc.disable() #   GC lst = [] lst.append(lst) #    lst lst_address = id(lst) #   lst del lst object_1 = {} object_2 = {} object_1['obj2'] = object_2 object_2['obj1'] = object_1 obj_address = id(object_1) #   del object_1, object_2 #          # gc.collect() #    print(PyObject.from_address(obj_address).refcnt) print(PyObject.from_address(lst_address).refcnt) 

рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдбреЗрд▓ рдЕрдиреБрджреЗрд╢ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБрдУрдВ (рди рдХрд┐ рд╕реНрд╡рдпрдВ рд╡рд╕реНрддреБрдУрдВ) рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм Python рдПрдХ del statement рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯ Python рдХреЛрдб рд╕реЗ рдЕрдкреНрд░рд╛рдкреНрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреАрд╕реА рдореЙрдбреНрдпреВрд▓ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рд╡реЗ рдЕрднреА рднреА рдореЗрдореЛрд░реА рдореЗрдВ рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рдереЗ рдФрд░ рдЙрдирдХрд╛ рдХрд╛рдЙрдВрдЯрд░ рдЕрднреА рднреА рдПрдХ рд╣реИред рдЖрдк рдиреЗрддреНрд░рд╣реАрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрд┐рд╕реЗ gc рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╛рдЗрдерди 1.5 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдЬрд┐рд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░реНрдп рдЪрдХреНрд░реАрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЕрдм рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред

рд▓реВрдкрдмреИрдХ рдХреЗрд╡рд▓ "рдХрдВрдЯреЗрдирд░" рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рдиреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЬреЛ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рд╕реВрдЪрд┐рдпрд╛рдБ, рд╢рдмреНрджрдХреЛрд╢, рдХрдХреНрд╖рд╛рдПрдВ, рдФрд░ рдЯреБрдкрд▓реНрд╕ред рдЬреАрд╕реА рд╕рд░рд▓ рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдирдЬрд╝рд░ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдЯреБрдкрд▓реНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рдЯреНрдпреВрд▓ рдФрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕реВрдЪреА рд╕реЗ рднреА рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде, рд╕рдВрджрд░реНрдн рдЧрдгрдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред

рдЬрдм рдЬреАрд╕реА рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ


рд╕рдВрджрд░реНрдн рдЧрдгрдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЪрдХреНрд░реАрдп рдЬреАрд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдХрд▓реЗрдХреНрдЯрд░ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд░рди рдХреЛрдб рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛ-рдкреЙрдЬ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП CPython (рдорд╛рдирдХ рджреБрднрд╛рд╖рд┐рдпрд╛) рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреА рдЖрд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЪрдХреНрд░реАрдп рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╛рд╣рдХ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ 3 рдкреАрдврд╝рд┐рдпреЛрдВ (рдкреАрдврд╝рд┐рдпреЛрдВ) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдирдИ рд╡рд╕реНрддреБрдПрдБ рдкрд╣рд▓реА рдкреАрдврд╝реА рдореЗрдВ рдЖрддреА рд╣реИрдВред рдпрджрд┐ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрдЪ рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЪрд▓рддреА рд╣реИред рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рдкреАрдврд╝реА рд╣реЛрддреА рд╣реИ, рдЙрддрдиреА рд╣реА рдмрд╛рд░ рдпрд╣ рдХрдЪрд░рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдирдИ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЕрдХреНрд╕рд░ рдмрд╣реБрдд рдХрдо рдЙрдореНрд░ рд╣реЛрддреА рд╣реИ (рдЕрд╕реНрдерд╛рдпреА рд╣реЛрддреА рд╣реИ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдХрдИ рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░ рдЪреБрдХреЗ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рдкреАрдврд╝реА рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрд╛рдЙрдВрдЯрд░ рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд╣рд▓реАрдЬ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рдЙрдВрдЯрд░ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреАрдврд╝реА рдореЗрдВ рдЖрд╡рдВрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдШрдЯрд╛рдХрд░ рдЬрдорд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдХреЛрдИ рдХрдВрдЯреЗрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рдЗрдерди рдореЗрдВ рдмрдирддрд╛ рд╣реИ, рд╡рд╣ рдЗрди рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рддреЛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред

рдпрджрд┐ рдХрдИ рдпрд╛ рдЕрдзрд┐рдХ рдкреАрдврд╝рд┐рдпреЛрдВ рдиреЗ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕реАрдорд╛ рдкрд╛рд░ рдХрд░ рд▓реА рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рд╡рд░рд┐рд╖реНрда рдкреАрдврд╝реА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреА рдкреАрдврд╝реА рднреА рдкрд┐рдЫрд▓реЗ рд╕рднреА рдХреЛ рд╕реНрдХреИрди рдХрд░рддреА рд╣реИред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреА рдкреАрдврд╝реА рдХреЗ рдкрд╛рд╕ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯ рд╣реИ ред

рдкреАрдврд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреНрд░рдорд╢рдГ 700, 10 10 рд╕реЗрдЯ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рд╣рдореЗрд╢рд╛ gc.get_threshold gc.set_threshold рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реВрдк рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдердо


рд▓реВрдк рд╕рд░реНрдЪ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЬреАрд╕реА рдЪрдпрдирд┐рдд рдкреАрдврд╝рд┐рдпреЛрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рднреА рд▓рд┐рдВрдХ рд╣рдЯрд╛рддрд╛ рд╣реИ (рд╕рднреА рд▓рд┐рдВрдХ рдЬреЛ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ)ред рдПрдХ рдкреВрд░реНрдг рдкрд╛рд╕ рдХреЗ рдмрд╛рдж, рджреЛ рд╕реЗ рдХрдо рдХреА рд▓рд┐рдВрдХ рдЧрд┐рдирддреА рд╡рд╛рд▓реА рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрдЬрдЧрд░ рд╕реЗ рдЕрдкреНрд░рд╛рдкреНрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдЧрд╣рд░реА рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ (рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ: рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рд╛рдордЧреНрд░реА) рдиреАрд▓ рд╕реНрдХреАрдиреЗрдиреЙрдпрд░ рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдореВрд▓ рд╡рд┐рд╡рд░рдг рдФрд░ рд╕реАрдкреАрдереЙрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ collect рд╕рдорд╛рд░реЛрд╣ред рдХреНрд╡реЛрд░рд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╡рд░рдг рдФрд░ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреЛрд╕реНрдЯ рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдореВрд▓ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдирд╛рд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдкрд╛рдпрдерди 3.4 ( рдкреАрдИрдкреА 442 рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг) рдХреЗ рдмрд╛рдж рд╕реЗ рддрдп рдХреА рдЧрдИ рд╣реИред

рдЕрдиреБрдХреВрд▓рди рдпреБрдХреНрддрд┐рдпрд╛рдБ


рд▓реВрдкреНрд╕ рдЕрдХреНрд╕рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд╡реЗ рдЧреНрд░рд╛рдлрд╝, рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╕реВрдЪрд┐рдпреЛрдВ, рдпрд╛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рднрд╛рд░ рд╣реИ рдФрд░ рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдорд╛рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рд▓реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрди рдЬрдЧрд╣реЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рдЖрдк рдЬрд╛рдирдмреВрдЭрдХрд░ рдкрд░рд┐рдкрддреНрд░ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк "рдХрдордЬреЛрд░" рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдордЬреЛрд░ рд▓рд┐рдВрдХ рдХрдордЬреЛрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░, рдирд┐рдпрдорд┐рдд рд▓рд┐рдВрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд▓рд┐рдВрдХ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп None рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдЬреАрд╕реА рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ gc.disable() рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ gc.collect() рдХреЙрд▓ рдХрд░реЗрдВред

рдкрд░рд┐рдкрддреНрд░ рд▓рд┐рдВрдХ рдХреИрд╕реЗ рдЦреЛрдЬреЗ рдФрд░ рдбреАрдмрдЧ рдХрд░реЗрдВ


рдбрд┐рдмрдЧрд┐рдВрдЧ рд▓реВрдк рджрд░реНрджрдирд╛рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЬреАрд╕реА рдореЙрдбреНрдпреВрд▓ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ GC рдкреИрд░рд╛рдореАрдЯрд░ DEBUG_SAVEALL рдзреНрд╡рдЬ рдкрд░ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рджреБрд░реНрдЧрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ gc.garbage рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 import gc gc.set_debug(gc.DEBUG_SAVEALL) print(gc.get_count()) lst = [] lst.append(lst) list_id = id(lst) del lst gc.collect() for item in gc.garbage: print(item) assert list_id == id(item) 

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд╕рдорд╕реНрдпрд╛ рд╕реНрдерд╛рди рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ - рддреЛ рдЗрд╕реЗ рдСрдмреНрдЬрд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЫрд╡рд┐

рдирд┐рд╖реНрдХрд░реНрд╖

рдореБрдЦреНрдп рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рд▓рд┐рдВрдХ рдХрд╛рдЙрдВрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдХреЛрдИ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЧреЛрд▓рд╛рдХрд╛рд░ рд╕рдВрджрд░реНрдн рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИрдВред

рдкреБрдирд╢реНрдЪ: рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд▓реЗрдЦрдХ рд╣реВрдВ, рдЖрдк рдХреЛрдИ рднреА рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi417215/


All Articles