π§ ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Python: ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΡΠ°ΡΠΊΠΈΠΉ Π³ΠΈΠ΄
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π² Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ gc.collect(). ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
import gc
# ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
# ΠΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°
gc.collect()
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Python
Π‘Π±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π² Python - ΡΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ, Π·Π°Π½ΡΡΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
1. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ±ΠΎΡ ΠΌΡΡΠΎΡΠ°
Python ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ gc
(garbage collector), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°. ΠΠ±ΡΡΠ½ΠΎ, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΌΠ΅ΡΠΈΠ²Π°ΡΡΡΡ Π² Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ gc
:
import gc
# Π―Π²Π½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°
gc.collect()
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΡΠ²Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π²ΡΡΡΠ½ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ ΠΎΡΡΠ°Π·ΠΈΡΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
2. Π ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°
Π Python Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
gc.disable()
: ΠΡΠΊΠ»ΡΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΌΡΡΠΎΡΠ°.gc.enable()
: ΠΠΊΠ»ΡΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΌΡΡΠΎΡΠ° (Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°).gc.isenabled()
: ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ°.
3. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ²
Python ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ². ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ, ΡΡΠΎ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°:
import gc
# ΠΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ
with gc.disable():
# ΠΠ°Ρ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠΎΠ΄, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°, Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°. ΠΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°, ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π²Π΅ΡΠ½Π΅ΡΡΡ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ.
4. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ
Π§ΡΠΎΠ±Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΠ²Π΅ΡΡ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ: ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π½Π΅Π½ΡΠΆΠ½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ
set
, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. - Π£Π΄Π°Π»ΠΈΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ: ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΄Π°Π»Π΅Π½Ρ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊΡ ΠΌΡΡΠΎΡΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½ΠΈΠΌ ΠΏΠ°ΠΌΡΡΡ.
- ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ: Π Π΅ΠΊΡΡΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ. ΠΠΎΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ , Π³Π΄Π΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Python ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΠΌΠΎΠ³ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π² Python ΠΈ ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ .