Π‘Π±ΠΎΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΡΠ»ΠΎΠΊ
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ ΠΏΠΎΠ΄ΡΡΡΡΠ° ΡΡΡΠ»ΠΎΠΊ Π² ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠΎΠ΄Π΅ ΡΠ΅Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π² PHP ΡΠ°Π½ΡΡΠ΅,
Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΠ»ΠΈΡΡ Ρ ΡΡΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ;
ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ PHP 5.3.0 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ·ΡΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΠ· ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ
» Concurrent Cycle Collection in Reference Counted Systems
(Π°Π½Π³Π». Β«ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΡΠ±ΠΎΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΡΠ»ΠΎΠΊ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΠΏΠΎΠ΄ΡΡΡΡΠ° ΡΡΡΠ»ΠΎΠΊΒ»), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π²ΡΡ
ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»Π°, Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π·Π΄Π΅Π» ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ.
ΠΠ½Π°ΡΠ°Π»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΠ΅ΡΠ²ΠΎΠ΅, PHP ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π½Π΅ ΡΡΠΈΡΠ°Π΅Ρ
ΠΌΡΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΡΠ° refcount ΠΊΠΎΡΠΎΡΡΡ
ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΎΡΡ.
Zval-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ»ΠΎΠΊ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΎΡΡ Π΄ΠΎ Π½ΡΠ»Ρ,
ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΌΡΡΠΎΡΠ½ΡΠΌΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π°
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° refcount Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Π½Π΅ ΠΎΠ±Π½ΡΠ»ΠΈΠ»ΠΎΡΡ.
ΠΡΠΎΡΠΎΠ΅, PHP ΡΠΌΠ΅Π΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΌΡΡΠΎΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ Π² ΠΌΡΡΠΎΡΠ½ΡΡ
ΡΠΈΠΊΠ»Π°Ρ
ΠΏΡΡΡΠΌ
ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠ»ΠΎΠΊ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Π² ΠΊΠ°ΠΊΠΈΡ
zval-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ»ΠΎΠΊ ΡΡΠ°Π»ΠΎ Π½ΡΠ»Π΅Π²ΡΠΌ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΡΠ½ΠΈ β zval-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ β Π² Β«ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π±ΡΡΠ΅ΡΒ» ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ
ΠΊΠΎΡΠ½ΠΈ Β«ΡΠΈΠΎΠ»Π΅ΡΠΎΠ²ΡΠΌΠΈΒ», ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΌΡΡΠΎΡΠ½ΡΡ
ΡΠΈΠΊΠ»ΠΎΠ² ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠΈ
ΡΡΡΡΡΠΈΠΊΠ° ΡΡΡΠ»ΠΎΠΊ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ»Π΅Π΄ΠΈΡ ΠΈ Π·Π° ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΠΌΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ
ΠΏΠΎΠΏΠ°Π΄Π°Π» Π² Π±ΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ zval-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π²Π½ΡΡΡΠΈ Π±ΡΡΠ΅ΡΠ°
ΡΡΠ°ΡΡΡΠ΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π³ A Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π²ΡΡΠ΅.
ΠΠ° ΡΠ°Π³Π΅ B Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌΡ ΠΊΠΎΡΠ½Ρ,
ΡΡΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ»ΠΎΠΊ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ,
ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΡΠ½ΠΈ Β«ΡΠ΅ΡΡΠΌΠΈΒ». ΠΠ° ΡΠ°Π³Π΅ C Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ
ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π°, ΡΡΠΎΠ±Ρ Π΅ΡΡ ΡΠ°Π· ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ»ΠΎΠΊ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ zval-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΡΠ½ΠΈ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΡΠ»ΠΎΠΊ Β«Π±Π΅Π»ΡΠΌΠΈΒ» (Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ β ΡΠΈΠ½ΠΈΠΌ).
Π Π΅ΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ»ΠΎΠΊ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ»Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Ρ ΠΏΠΎΠΈΡΠΊ ΠΈΠ΄ΡΡ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ
Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠ»ΠΎΠΊ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΡΠ½Π΅ΠΉ Β«ΡΠ΅ΡΠ½ΡΠΌΠΈΒ».
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π³Π΅, D, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ
ΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΊΠΎΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π·Π°ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ zval-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π³Π΅ ΠΎΠ½ ΠΏΠΎΠΌΠ΅ΡΠΈΠ» Β«Π±Π΅Π»ΡΠΌΠΈΒ». ΠΠ°ΠΆΠ΄ΡΠΉ Β«Π±Π΅Π»ΡΠΉΒ» zval-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ ΡΠΎΠΌΡ,
ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ PHP. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° PHP Π²ΠΊΠ»ΡΡΡΠ½.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ zend.enable_gc Π² ΡΠ°ΠΉΠ»Π΅ php.ini
ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΌΡΡΠΎΡΠ°.
ΠΡΠΈ Π²ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠΌ ΡΠ±ΠΎΡΡΠΈΠΊΠ΅ ΠΌΡΡΠΎΡΠ°, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΡΠ»ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ
Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°. Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΡΠ°Π²Π½ΡΠ΅ΡΡΡ 10 000 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΊΠΎΡΠ½Π΅ΠΉ,
Ρ
ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΡΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ GC_THRESHOLD_DEFAULT
Π² ΡΠ°ΠΉΠ»Π΅ Zend/zend_gc.c ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° PHP ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ PHP.
ΠΡΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠ±ΠΎΡΡΠΈΠΊΠ΅ ΠΌΡΡΠΎΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΡΠ»ΠΎΠΊ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ
Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΡΠ½ΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°
ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
PHP ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡ Π·Π°ΠΏΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΊΠΎΡΠ½Π΅ΠΉ,
Π΅ΡΠ»ΠΈ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΏΡΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΡΠ½ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π·Π°ΠΏΠΈΡΠ°Π» Π² Π±ΡΡΠ΅Ρ.
ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΊΠΎΡΠ½ΠΈ ΠΎΠΊΠ°ΠΆΡΡΡΡ ΠΌΡΡΠΎΡΠΎΠΌ Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ, ΠΎΠ½ΠΈ Π²ΡΠ·ΠΎΠ²ΡΡ ΡΡΠ΅ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ,
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ PHP Π½Π΅ ΠΎΡΠΈΡΡΠΈΡ ΠΈΡ
.
ΠΡΠΈΡΠΈΠ½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΊΠΎΡΠ½Π΅ΠΉ Π² Π±ΡΡΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°
ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΡΠ½ΠΈ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΠ΄Π°ΡΡΡΡ Π½Π°ΠΉΡΠΈ ΠΊΠΎΡΠ΅Π½Ρ,
ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ Π»ΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°
ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠΎΠΌΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ zend.enable_gc,
Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π·Π°ΠΏΡΡΠΊ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ gc_enable()
ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ gc_disable().
ΠΡΠ·ΠΎΠ² ΡΡΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ, ΡΡΠΎ ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°
Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ½ΡΡ
ΡΠΈΠΊΠ»ΠΎΠ², Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ Π΅ΡΡ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ gc_collect_cycles(), ΠΊΠΎΡΠΎΡΠ°Ρ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΡΠ»ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΡΠ°Π» Π°Π»Π³ΠΎΡΠΈΡΠΌ.
Π‘ΠΌΡΡΠ» Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°
ΡΠΎΡΡΠΎΠΈΡ Π² ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π·Π°ΠΏΡΡΠΊ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π½Π΅ Π½ΡΠΆΠ΅Π½.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΡΠ°ΡΡΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΡΠΊ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΡΠ½ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΡΡΡΡΡ Π² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ
ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ. ΠΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ gc_disable()
Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ gc_collect_cycles(),
ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ, ΡΠΈΡΠΊ ΠΏΠΎΡΠ΅ΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ·-Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΊΠΎΡΠ½Π΅ΠΉ,
ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΆΠ΅ Π·Π°ΠΏΠΈΡΠ°Π» Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ.
ΠΡΠΎ ΠΎΡΠΈΡΡΠΈΡ Π±ΡΡΠ΅Ρ ΠΈ Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠ΅ΡΡΠ°
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠ½Π΅ΠΉ, ΠΏΠΎΠΊΠ° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ±ΠΎΡΠ° ΠΌΡΡΠΎΡΠ½ΡΡ
ΡΠΈΠΊΠ»ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½.