Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° php
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ° PHP
ΠΠΎΠ±ΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠΎΠΊ, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ! 🙂
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ΅ΡΠΈΠ» Π·Π°ΡΡΠΎΠ½ΡΡΡ ΡΠ°ΠΊΡΡ ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° PHP ΠΈ Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.
ΠΠ΅ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ, Π½ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ° PHP.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ°ΡΡΠΎ Π·Π° ΡΠ°ΠΊΠΈΠΌ Π·Π°Π½ΡΡΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡΡΠΊΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΡ ΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ΠΎΠΌ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP ΡΠΊΡΠΈΠΏΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠΌ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°.
ΠΡ, ΠΈ Π΅ΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΡΡΡ ΡΡΠ΅Π±ΡΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΈ, ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ Π²ΡΡΡΠ½ΠΈΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π° ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅.
ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΈ ΡΠ΅ΡΠΈΠ» Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΡΠΎΡΠ΅Π½ΡΠΊΡΡ Π·Π°ΠΌΠ΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅ΡΠΈΠ» ΠΈΠ·Π»ΠΎΠΆΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
Π‘ΠΏΠ΅ΡΠ²Π° ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP ΡΠΊΡΠΈΠΏΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Ρ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΊΠΎΠ΄, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡΡΡ.
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP ΡΠΊΡΠΈΠΏΡΠ° β Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
ΠΠΎΡΡΠ΄ΠΎΠΊ Π½Π°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ:
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΠΈΡΠΎΠ³Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ .
ΠΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ PHP ΡΠΊΡΠΈΠΏΡΠ° β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² PHP ΠΊΠΎΠ΄Π΅ Ρ ΡΠ΅ΡΠΈΠ» Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ PHP ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ microtime(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΌΠ΅ΡΠΊΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² Unix ΡΠΎΡΠΌΠ°ΡΠ΅ Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌΠΈ.
ΠΠ°ΡΠ΅ΠΌ ΡΠ°ΠΊΠ°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ?
ΠΠ°ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ»ΠΎΠ²ΠΈΡΡ ΠΌΠ°Π»Π΅ΠΉΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Ρ.ΠΊ. ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠ»ΠΈ ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΡΠ°Π»ΡΠ½Ρ ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎΡΠ΅ΡΡΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±Π°Ρ .
ΠΡ, ΠΈ ΠΏΠ»ΡΡ, ΡΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΎΡΠ½ΠΎΡΡΡ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΈΠΉ Π² ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Ρ.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ²ΠΎΠΈΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ²Π΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ ΡΠΊΡΠΈΠΏΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΠΎΠ½Π° ΠΏΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Ρ 30 000 000 ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ (ΡΠ΅ΡΠΈΠ» Π²Π·ΡΡΡ ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ):
ΠΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ PHP, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ microtime() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Β«msec secΒ», Π³Π΄Π΅ sec β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄ Ρ Π½Π°ΡΠ°Π»Π° ΡΠΏΠΎΡ ΠΈ Unix (1 ΡΠ½Π²Π°ΡΡ 1970 0:00:00 GMT), Π° msec β ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄, ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΡ ΠΏΠΎΡΠ»Π΅ sec.
Π€ΡΠ½ΠΊΡΠΈΡ PHP microtime() ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ get_as_float, ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ true ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ PHP Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ , ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΡ Ρ Π½Π°ΡΠ°Π»Π° ΡΠΏΠΎΡ ΠΈ Unix Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, Π° Π½Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄ Ρ Π½Π°ΡΠ°Π»Π° ΡΠΏΠΎΡ ΠΈ Unix, ΡΠΎ Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π΄Π°Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ Π² ΠΌΠΎΡΠΌ ΠΊΠΎΠ΄Π΅.
Π ΠΈΡΠΎΠ³Π΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ echo(), Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ²Π΅Π»ΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: Π‘ΠΊΡΠΈΠΏΡ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π·Π° 1.3156361579895 ΡΠ΅ΠΊΡΠ½Π΄.
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π΅ΡΠ½ΠΎ, Ρ ΡΠ΅ΡΠΈΠ» Π·Π°Π΄Π°ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ sleep(), ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄.
Π ΠΈΡΠΎΠ³Π΅, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²Π΅ΡΠ½ΡΠ»Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π‘ΠΊΡΠΈΠΏΡ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π·Π° 2.0000510215759 ΡΠ΅ΠΊΡΠ½Π΄:
ΠΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠΊΠΎΠΏΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΠΎΠ»ΠΈ ΡΠ΅ΠΊΡΠ½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠΈΡΠ°ΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ΄ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΌ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° Π½ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡΡΡΡ Π³Π»Π°Π·Π°.
ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΡ-ΡΠ°ΠΊΠΈ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°ΡΡ Π²Π°Ρ ΠΈΠ»ΠΈ Π²Π°ΡΠ΅Π³ΠΎ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ Π°ΠΊΠΎΠΌ Π² Π²ΠΈΠ΄Π΅ Π±Π°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π΄ΠΎ ΡΠΎΡΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΡΠ½ΡΡ Π΄ΠΎΠ»Π΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PHP ΡΡΠ½ΠΊΡΠΈΠΈ round(), Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π² Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΠΊΠ° ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΡΠ°Π½Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΡΡΠ³Π»Π΅Π½ΡΠΊΠΈΠ΅ 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΡΠΎ ΡΡΡΡΠΎΠΈΡ ΡΠ°ΠΌΡΡ ΠΈΡΠΊΡΡΡΠ½Π½ΡΡ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠΎΠ² 🙂
ΠΠ° ΡΡΠΎΠΌ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° PHP, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΡ.
ΠΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΠΎΡΠ·ΡΠ²Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΈ Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡΡ Π² ΠΏΠ°Π±Π»ΠΈΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡ .
ΠΡΠ΅ΠΌ ΡΠ΄Π°ΡΠΈ ΠΈ Π΄ΠΎ Π½ΠΎΠ²ΡΡ Π²ΡΡΡΠ΅Ρ! 🙂
P.S.: Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ°ΠΉΡ Π»ΠΈΠ±ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π΅ΡΡΠΈ ΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ, Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΡ, ΠΌΠΎΠ³Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΡΠ»ΡΠ³ΠΈ.
ΠΠΎΠ»Π΅Π΅ 5 Π»Π΅Ρ ΠΎΠΏΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΡΠΎΠ². Π Π°Π±ΠΎΡΠ° Ρ PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ web-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ: Π»Π΅Π½Π΄ΠΈΠ½Π³ΠΈ, ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΠ°ΠΉΡΡ, ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ, CRM, ΠΏΠΎΡΡΠ°Π»Ρ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° HighLoad ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΡΠΈΡΡΠ»Π°ΠΉΡΠ΅ Π²Π°ΡΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π½Π° email cccpblogcom@gmail.com.
Π Ρ Π΄ΡΡΠ·ΡΡΠΌΠΈ Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ 😉
Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° PHP
ΠΠ°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ: 2016-09-20
ΠΡ Π°Π²ΡΠΎΡΠ°: ΡΡΠ½ ΠΌΠΎΠ΅Π³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π»Π΅ΠΊΡΡ Ρ ΠΈΠΌΠΈΠ΅ΠΉ, ΡΡΠΎ Π½Π°ΡΠ°Π» Π΄ΠΎΠΌΠ° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Β«ΠΈΡΠΏΡΡΠ°Π½ΠΈΡΒ». ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡ Β«ΠΆΠ΅ΡΡΠ²ΠΎΠΉΒ» ΡΡΠ°Π»Π° Π»ΡΡΡΡΠ° Π½Π° ΠΊΡΡ Π½Π΅, ΠΎΡΠ΅Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΠ» Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΈΡΡΡΠ°ΡΡΠΈΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π±Π΅Π½ΠΎΠΊ ΡΠ²Π»Π΅ΠΊΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ, ΠΈ ΡΠ΅ΡΠΈΠ» Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π³ΠΎΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΏΠΈΡΠΊΠΈ. Π‘Π»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ ΡΠ΅Π³ΠΎ ΡΡΡΡ Π½Π΅ ΡΡΠ°Π»ΠΎ Π²ΠΎΠ·Π³ΠΎΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΠΊΠ²Π°ΡΡΠΈΡΡ. Π― ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» Β«Π³ΠΎΡΠ΅-ΡΡΠ΅Π½ΠΎΠΌΡΒ» Π·Π°Π½ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° PHP.
ΠΠ°ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ°Π½ΡΠ°Π·ΠΈΡΡΠ΅ΠΌ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Β«ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΠΉΒ» Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Β«Π·Π°Π»ΠΈΠ»Β» Π½Π° Ρ ΠΎΡΠΎΡΠΈΠΉ Ρ ΠΎΡΡΠΈΠ½Π³ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ» (Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅) ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΡ. ΠΠΎ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅ΡΡΡΡΠ° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.
Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΡΠ΅ ΡΠΈΡΠΊΠΈ Β«ΠΏΠΎΡΡΠΏΠ»ΡΡΡΡΒ» Π½Π° Ρ ΠΎΡΡΠ΅ΡΠ°. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ°Π·Π³Π½Π΅Π²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡ Ρ ΠΆΠ°Π»ΠΎΠ±ΠΎΠΉ Π² ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Ρ ΠΎΡΡΠΈΠ½Π³Π°. ΠΠΎΠ», Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, ΡΠ°ΠΉΡ Π΅Π»Π΅ Β«ΠΆΠΈΠ²ΠΎΠΉΒ»β¦
ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅. Π ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΠΎΡΠΎΠΌ Β«ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠΌΒ», ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠ΅Π³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° PHP.
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ PHP ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ²ΠΎΠΉΡΠ΅ ΠΊΡΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Π½Π° PHP ΠΈ MySQL Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π½ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ MVC
Π ΠΊΡΡΡΠ΅ 39 ΡΡΠΎΠΊΠΎΠ² | 15 ΡΠ°ΡΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ | ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ°
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ PHP
Π― Π²ΡΠ΅Π³Π΄Π° Π½Π°Π·ΡΠ²Π°Π» PHP ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π΄Π»ΠΈΠ½Π½ΡΠ΅ Β«ΡΠ°Π»ΠΌΡΠ΄ΡΒ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠ°. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΠ»Π°Π²Π½ΡΠΌ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ microtime(). ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ (Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ ), ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π΅ Ρ Π½Π°ΡΠ°Π»Π° 1970 Π³. Π’Π°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Β«Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ ΠΈ UnixΒ». ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ get_as_float ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ true, ΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅Π»ΡΡ ΡΠ΅ΠΊΡΠ½Π΄ ΠΈ Π΄ΡΠΎΠ±Π½ΡΡ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄.
ΠΡΠΈΠ½ΡΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ microtime() Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΊΡΠΈΠΏΡΠ° ΠΈ Π² Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡ:
microtime
(PHP 4, PHP 5, PHP 7, PHP 8)
microtime β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΌΠ΅ΡΠΊΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Unix Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌΠΈ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π€ΡΠ½ΠΊΡΠΈΡ microtime() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΌΠ΅ΡΠΊΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Unix Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌΠΈ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² gettimeofday().
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΠ°ΠΌΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°
// Π‘ΠΏΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
usleep ( 100 );
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ microtime() ΠΈ REQUEST_TIME_FLOAT
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
User Contributed Notes 20 notes
All these timing scripts rely on microtime which relies on gettimebyday(2)
This can be inaccurate on servers that run ntp to syncronise the servers
time.
For timing, you should really use clock_gettime(2) with the
CLOCK_MONOTONIC flag set.
This returns REAL WORLD time, not affected by intentional clock drift.
This may seem a bit picky, but I recently saw a server that’s clock was an
hour out, and they’d set it to ‘drift’ to the correct time (clock is speeded
up until it reaches the correct time)
Those sorts of things can make a real impact.
Any solutions, seeing as php doesn’t have a hook into clock_gettime?
Here is a solution to easily calculate the execution time of a script without having to alter any configuration parameter. It uses the former way of getting microseconds.
It is important to note that microtime(TRUE) does NOT always return a float (at least in PHP 5.x; I have not tested 7.x). If it happens to land on an exact second, it returns an integer instead.
The description of «msec», in this documentation, is very bad.
It is NOT the microseconds that have elapsed since «sec» (if so, it should be given as an integer, without the «0.» in the beginning of the string).
It IS the fractional part of the time elapsed since «sec», with microseconds (10E-6) precision, if the last «00» are not considered significant».
If the last two digits are significant, then we would have a precision of 10E-8 seconds.
mixed mini_bench_to(array timelist[, return_array=false])
return a mini bench result
-the timelist first key must be ‘start’
-default return a resume string, or array if return_array= true :
‘total_time’ (ms) in first row
details (purcent) in next row
The function to include :
Using microtime() to set ‘nonce’ value:
Out of the box, microtime(true) will echo something like:
Which is obviously less than microsecond accuracy. You’ll probably want to bump the ‘precision’ setting up to 16 which will echo something like:
*Internally* it will be accurate to the six digits even with the default ‘precision’, but a lot of things (ie. NoSQL databases) are moving to all-text representations these days so it becomes a bit more important.
* 14 at the time of writing
//timestamp in milliseconds:
intval ( microtime ( true )* 1000 )
//timestamp in microseconds:
intval ( microtime ( true )* 1000 * 1000 )
//timestamp in nanoseconds:
intval ( microtime ( true )* 1000 * 1000 * 1000 )
While doing some experiments on using microtime()’s output for an entropy generator I found that its microsecond value was always quantified to the nearest hundreds (i.e. the number ends with 00), which affected the randomness of the entropy generator. This output pattern was consistent on three separate machines, running OpenBSD, Mac OS X and Windows.
The solution was to instead use gettimeofday()’s output, as its usec value followed no quantifiable pattern on any of the three test platforms.
A convenient way to write the current time / microtime as formatted string in your timezone as expression?
DateTime now is: 2018-06-01 14:54:58 Europe/Berlin
Microtime now is: 180601 14:54:58.781716 Europe/Berlin
I have been getting negative values substracting a later microtime(true) call from an earlier microtime(true) call on Windows with PHP 5.3.8
$time_start = micro_time ();
sleep ( 1 );
$time_stop = micro_time ();
I use this for measure duration of script execution. This function should be defined (and of couse first call made) as soon as possible.
?>
However it is true that result depends of gettimeofday() call. ([jamie at bishopston dot net] wrote this & I can confirm)
If system time change, result of this function can be unpredictable (much greater or less than zero).
Of the methods I’ve seen here, and thought up myself, to convert microtime() output into a numerical value, the microtime_float() one shown in the documentation proper(using explode,list,float,+) is the slowest in terms of runtime.
I implemented the various methods, ran each in a tight loop 1,000,000 times, and compared runtimes (and output). I did this 10 times to make sure there wasn’t a problem of other things putting a load spike on the server. I’ll admit I didn’t take into account martijn at vanderlee dot com’s comments on testing accuracy, but as I figured the looping code etc would be the same, and this was only meant as a relative comparison, it should not be necessary.
Get date time with milliseconds
Test accuracy by running it in a loop.
//Function to convert microtime return to human readable units
//ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
ΠΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ PHP ΡΠΊΡΠΈΠΏΡΠΎΠ²
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π² PHP ΡΠΊΡΠΈΠΏΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ php.ini, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠ°ΠΌΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°Ρ .
Π ΡΠ°ΠΉΠ»Π΅ php.ini Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° Resource Limits (ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ²).
ΠΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ PHP ΡΠΊΡΠΈΠΏΡΠΎΠ²
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ php.ini Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ:
ΠΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π·Π°Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ , Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΏΠ°ΡΡΠ΅Ρ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ°. ΠΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ·-Π·Π° ΠΏΠ»ΠΎΡ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°ΡΡΡΡ 30 ΡΠ΅ΠΊΡΠ½Π΄. ΠΡΠ»ΠΈ PHP Π·Π°ΠΏΡΡΠ΅Π½ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½ΠΎ 0.
ΠΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ Π²Π»ΠΈΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Ρ.ΠΏ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ini_set(). ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ ΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π½Π°Π΄ΠΎ Π»ΠΈΠ±ΠΎ Π²ΡΠΊΠ»ΡΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎ Π² php.ini.
ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΉΠΌ-Π°ΡΡΠ°, ΠΏΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΌΠΈ Π·Π°Π²Π΅ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° PHP. Π Apache Π΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Timeout, Π² IIS Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ CGI timeout. Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ 300 ΡΠ΅ΠΊΡΠ½Π΄. Π’ΠΎΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP
Π€ΡΠ½ΠΊΡΠΈΡ set_time_limit ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠ½Π° Π·Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ , Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Π½Π΅ ΡΡΠΏΠ΅Π²Π°Π΅Ρ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π°Π΅ΡΡΡ 30 ΡΠ΅ΠΊΡΠ½Π΄, Π»ΠΈΠ±ΠΎ Π²ΡΠ΅ΠΌΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ max_execution_time Π² php.ini (Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°).
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ set_time_limit() ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠ΅ΡΡΠΈΠΊ Ρ Π½ΡΠ»Ρ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠΌ-Π°ΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» 30 ΡΠ΅ΠΊΡΠ½Π΄, ΠΈ ΡΠ΅ΡΠ΅Π· 25 ΡΠ΅ΠΊΡΠ½Π΄ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ set_time_limit(20), ΡΠΎ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 45 ΡΠ΅ΠΊΡΠ½Π΄.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ TRUE Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π°, ΠΈΠ½Π°ΡΠ΅ FALSE.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ PHP ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠΊΠ»ΡΡΠΈΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² php.ini.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠ½ΠΊΡΠΈΡ set_time_limit() ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° max_execution_time Π²Π»ΠΈΡΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°. ΠΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π½Π΅ ΡΠΊΡΠΈΠΏΡΠ°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ system(), ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ Ρ.ΠΏ. Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠ°ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°. ΠΡΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ Windows, Π³Π΄Π΅ ΡΠ°ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ±Π΅ set_time_limit(β¦) ΠΈ ini_set(‘max_execution_time’,β¦); Π½Π΅ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ sleep, file_get_contents, shell_exec, mysql_query ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ PHP ΡΠΊΡΠΈΠΏΡΠΎΠ²
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π² ΡΠ°ΠΉΠ»Π΅ php.ini
Π·Π°Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π² Π±Π°ΠΉΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ»ΠΎΡ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΡΡΠ΅Π΄Π°Π΅Ρ Π²ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π² -1.
Π Π²Π΅ΡΡΠΈΡΡ Π΄ΠΎ PHP 5.2.1 Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π’Π°ΠΊ, Π²Π°ΡΠ° ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ°ΡΡ: —enable-memory-limit. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π±ΡΠ»Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ memory_get_usage() ΠΈ memory_get_peak_usage() Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 5.2.1.
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π±Π°ΠΉΡΠ°ΠΌΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ.
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ: K (Π΄Π»Ρ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ), M (Π΄Π»Ρ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ) ΠΈ G (Π΄Π»Ρ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ; Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π°ΡΠΈΠ½Π°Ρ Ρ PHP 5.1.0); ΠΎΠ½ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π±Π°ΠΉΡΠ°ΠΌΠΈ. 1M ΡΠ°Π²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΡ ΠΈΠ»ΠΈ 1048576 Π±Π°ΠΉΡΠ°ΠΌ. 1K ΡΠ°Π²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΡ ΠΈΠ»ΠΈ 1024 Π±Π°ΠΉΡΠ°ΠΌ. ΠΡΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² php.ini ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ini_set(). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ integer; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 0.5M ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ 0.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π΄Π°Π½Π½ΡΡ
ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π² ΡΠ°ΠΉΠ»Π΅ php.ini
Π·Π°Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ , Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ Π²ΡΠΎΠ΄Π΅ POST ΠΈΠ»ΠΈ GET. ΠΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ ΠΎΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° PHP Π²ΡΠ·Π²Π°Π½ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠΊΡΠΈΠΏΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ -1, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ max_execution_time. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π²Π½ΡΠΌ 0, ΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° -1 (Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎ).
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π³Π»ΡΠ±ΠΈΠ½Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ Π²Ρ
ΠΎΠ΄Π½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π² ΡΠ°ΠΉΠ»Π΅ php.ini
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π² ΡΠ°ΠΉΠ»Π΅ php.ini
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ» php.ini Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΏΠΈΠ»ΠΈ Π² ΡΠΈΠ»Ρ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ²
Π€ΡΠ½ΠΊΡΠΈΡ getrusage ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΡΡΠ°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½ΡΠ΅ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΠΌΠ΅Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠΎΠ»Π΅ΠΉ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ getrusage():
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ
ΠΡΠΎΠΌΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΡ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΎΡΡΠΎΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π»ΠΈΠΌΠΈΡΡ, Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠΌΠΈΠΌΠΎ Resource Limits.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°ΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π±Π°ΠΉΡΠ°ΠΌΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΠΈΡΠ°Π½Π° ΡΡΡΡ Π²ΡΡΠ΅.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π°Π½Π½ΡΡ
, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ POST
ΠΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠ°ΠΉΡ), ΡΠ°ΠΊ ΠΈ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ upload_max_filesize ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠ°ΠΉΡ, ΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ:
ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ POST. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ upload_max_filesize. Π ΡΡΡΠ½ΠΎΡΡΠΈ, memory_limit Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ post_max_size. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ integer, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π±Π°ΠΉΡΠ°ΠΌΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΠΈΡΠ°Π½Π° Π²ΡΡΠ΅. ΠΡΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ POST-Π΄Π°Π½Π½ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ post_max_size, ΡΡΠΏΠ΅ΡΠ³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ $_POST ΠΈ $_FILES Π±ΡΠ΄ΡΡ ΠΏΡΡΡΡΠΌΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π² $_GET ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΠΊΡΠΈΠΏΡ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅, Ρ.Π΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Β«Π΄ΠΎΠ»Π³ΠΈΡ Β» ΡΠΊΡΠΈΠΏΡΠΎΠ² PHP
ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ°ΡΡ
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° max_execution_time Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ PHP.
ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ PHP ΡΠΊΡΠΈΠΏΡ (Π½Π΅ ΡΠ΅Π΄ΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, nginx β ΡΡΠΎΠ½ΡΠ΅Π½Π΄, apache β Π±ΡΠΊΡΠ½Π΄). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈΡΡΡΡΠ΅ΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ apache ProxyTimeout, Π΄Π»Ρ nginx proxy_read_timeout.
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ
ΠΡΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° HTTP-Π·Π°ΠΏΡΠΎΡ, ΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π² ΡΠ²ΠΎΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΈ PHP ΡΠΊΡΠΈΠΏΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π² TRUE ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ignore_user_abort Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ PHP.
ΠΠΎΡΠ΅ΡΡ ΠΎΡΠΊΡΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ MySQL ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ (ΡΠΏΠ°ΡΠΈΠ±ΠΎ Snowly)
ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π½ΠΎ ΡΡΠ° Π·Π°Π΄Π°ΡΠ° Π²ΡΠ΅Π³Π΄Π° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ. ΠΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π° Π»ΠΈ Π΄ΡΡΠ³Π°Ρ ΠΊΠΎΠΏΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°, ΠΈ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ, Π»ΠΈΠ±ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ Π·Π°ΠΏΡΡΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°, ΡΡΠΎ ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ
Π ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ»Π³ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΊΡΠΈΠΏΡ. ΠΡΠΎ Π½Π΅ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ, Ρ.ΠΊ. Π·Π°Π΄Π°ΡΠ° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΎΡΠ΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ Π²ΠΈΡΠ΅ΡΡ, ΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΡΠΊΠ΅ΡΠΎΠ² (ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²) Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΡΡ. Π Π΅ΡΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΡΡΡ Π²ΡΠ΅ (Π½Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅) ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ Π²ΠΎΡΠΊΠ΅ΡΡ (Π΄Π»Ρ apache ΡΠΌ. MaxClients), ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
ΠΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ΅Π· php-cli, ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°Π³ΡΡΠΆΠ°ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΡΡΠΎ Π΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ AJAX Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠΎΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΠΈ Π²ΡΠ΅ ΡΡΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅. ΠΠ°Π΄Π΅ΡΡΡ, Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.