врСмя запуска скрипта php

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта PHP

врСмя запуска скрипта php. lazy placeholder. врСмя запуска скрипта php Ρ„ΠΎΡ‚ΠΎ. врСмя запуска скрипта php-lazy placeholder. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° врСмя запуска скрипта php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° lazy placeholder. Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ! 🙂Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ! 🙂

БСгодня я Ρ€Π΅ΡˆΠΈΠ» Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Ρ‚Π΅ΠΌΡƒ, ΠΊΠ°ΠΊ врСмя выполнСния скрипта PHP ΠΈ Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

НС скаТу, Ρ‡Ρ‚ΠΎ данная Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, Π½ΠΎ врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ситуации, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта PHP.

ОсобСнно часто Π·Π° Ρ‚Π°ΠΊΠΈΠΌ занятиСм ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡ‚ΡƒΠΊΠ°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠΎΠ³Π΄Π° врСмя выполнСния PHP скрипта являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Ну, ΠΈ Π΅Ρ‰Ρ‘ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΈ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ потрСбуСтся Π½Π° Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ дСйствиС Π² ΠΊΠΎΠ΄Π΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΈ Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΡ€ΠΎΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅ΡˆΠΈΠ» ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ порядок дСйствий Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ ситуации.

Π‘ΠΏΠ΅Ρ€Π²Π° ΠΌΡ‹ рассмотрим сам Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ опрСдСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния PHP скрипта, Π° Π·Π°Ρ‚Π΅ΠΌ я ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΊΠΎΠ΄, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ.

ВрСмя выполнСния PHP скрипта β€” Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ опрСдСлСния

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π½Π°ΡˆΠΈΡ… дСйствий Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост:

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния PHP скрипта, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ дальнСйшСй ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… дСйствиях.

ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ PHP скрипта β€” рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

Для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² PHP ΠΊΠΎΠ΄Π΅ я Ρ€Π΅ΡˆΠΈΠ» Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ стандартной PHP Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ microtime(), которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Unix Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ с микросСкундами.

Π—Π°Ρ‡Π΅ΠΌ такая Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ?

Π—Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΠΎΠ²ΠΈΡ‚ΡŒ малСйшиС измСнСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния скриптов, Ρ‚.ΠΊ. ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠ»ΠΈ сСкунды ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ ΠΈ привСсти ΠΊ большим потСрям ΠΏΡ€ΠΈ использовании ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°Ρ….

врСмя запуска скрипта php. lazy placeholder. врСмя запуска скрипта php Ρ„ΠΎΡ‚ΠΎ. врСмя запуска скрипта php-lazy placeholder. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° врСмя запуска скрипта php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° lazy placeholder. Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ! 🙂

Ну, ΠΈ плюс, ΡƒΡ‡Ρ‘Ρ‚ микросСкунд ΠΏΡ€ΠΈ вычислСниях влияСт Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ†ΠΈΠΉ Π² ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ сторону.

Для дСмонстрации своих тСорСтичСских повСствований я написал ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ скриптик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вычисляСт врСмя ΠΏΡ€ΠΎΠ³ΠΎΠ½Π° пустого Ρ†ΠΈΠΊΠ»Π° с 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, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ.

врСмя запуска скрипта php. lazy placeholder. врСмя запуска скрипта php Ρ„ΠΎΡ‚ΠΎ. врСмя запуска скрипта php-lazy placeholder. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° врСмя запуска скрипта php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° lazy placeholder. Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ! 🙂

ΠŸΠΈΡˆΠΈΡ‚Π΅ свои ΠΎΡ‚Π·Ρ‹Π²Ρ‹ Π² коммСнтариях ΠΈ Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ вас вопросы Π² ΠΏΠ°Π±Π»ΠΈΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях.

ВсСм ΡƒΠ΄Π°Ρ‡ΠΈ ΠΈ Π΄ΠΎ Π½ΠΎΠ²Ρ‹Ρ… встрСч! 🙂

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. 100. врСмя запуска скрипта php Ρ„ΠΎΡ‚ΠΎ. врСмя запуска скрипта php-100. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° врСмя запуска скрипта php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 100. Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ! 🙂

ΠžΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°: сын ΠΌΠΎΠ΅Π³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ увлСкся Ρ…ΠΈΠΌΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡Π°Π» Π΄ΠΎΠΌΠ° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ «испытания». ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡ… Β«ΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠΉΒ» стала Π»ΡŽΡΡ‚Ρ€Π° Π½Π° ΠΊΡƒΡ…Π½Π΅, ΠΎΡ‚Π΅Ρ† попросил Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свои пристрастия. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π΅Π±Π΅Π½ΠΎΠΊ увлСкся статистикой, ΠΈ Ρ€Π΅ΡˆΠΈΠ» Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ срСднСС врСмя горСния ΠΎΠ΄Π½ΠΎΠΉ спички. БлСдствиСм Ρ‡Π΅Π³ΠΎ Ρ‡ΡƒΡ‚ΡŒ Π½Π΅ стало Π²ΠΎΠ·Π³ΠΎΡ€Π°Π½ΠΈΠ΅ всСй ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹. Π― посовСтовал Β«Π³ΠΎΡ€Π΅-ΡƒΡ‡Π΅Π½ΠΎΠΌΡƒΒ» Π·Π°Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ врСмя выполнСния скрипта PHP.

Π—Π°Ρ‡Π΅ΠΌ измСрСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

НСмного ΠΏΠΎΡ„Π°Π½Ρ‚Π°Π·ΠΈΡ€ΡƒΠ΅ΠΌ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ «самописный» Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Β«Π·Π°Π»ΠΈΠ»Β» Π½Π° Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ хостинг ΠΈ запустил (Π½Π° Π΅Π³ΠΎ основС) свой сайт. Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° рСсурса Π½Π° сторонС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ происходит ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.

Π’ Ρ‚Π°ΠΊΠΎΠΉ ситуации ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ всС шишки Β«ΠΏΠΎΡΡ‹ΠΏΠ»ΡŽΡ‚ΡΡΒ» Π½Π° хостСра. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Ρ€Π°Π·Π³Π½Π΅Π²Π°Π½Π½Ρ‹ΠΉ программист обратится с ΠΆΠ°Π»ΠΎΠ±ΠΎΠΉ Π² слуТбу ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ хостинга. Мол, Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ условия Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°, сайт Π΅Π»Π΅ «Тивой»…

Но Π½Π° самом Π΄Π΅Π»Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страниц динамичСского рСсурса ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² самом Π΄Π²ΠΈΠΆΠΊΠ΅. И Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌ Β«Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠΌΒ», ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ всСгда ΠΏΠ΅Ρ€Π΅Π΄ сдачСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° измСряСт врСмя исполнСния скрипта PHP.

врСмя запуска скрипта php. php. врСмя запуска скрипта php Ρ„ΠΎΡ‚ΠΎ. врСмя запуска скрипта php-php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° врСмя запуска скрипта 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():

врСмя запуска скрипта php. getrusage. врСмя запуска скрипта php Ρ„ΠΎΡ‚ΠΎ. врСмя запуска скрипта php-getrusage. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° врСмя запуска скрипта php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 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 запросов.

Π’ΠΎΡ‚, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΈ всС Ρ‡Ρ‚ΠΎ я ΠΌΠΎΠ³Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅. НадСюсь, для ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *