usleep() php5 использует 40% неактивного процессора
Привет, ребята, у меня странный вопрос,
У меня есть сценарий cli php, работающий на Centos 5.x, который использует usleep (иногда 1 с, иногда 2 с, иногда 100 мс, это зависит), если требуется некоторое ожидание, но я заметил, что когда-то на usleep() он использует около 40% простоя процессора:
Cpu(s): 5.3%us, 21.3%sy, 0.0%ni, 57.2%id, 0.0%wa, 0.0%hi, 0.0%si, 16.1%st
есть идеи?
ура
2 ответа
Это не происходит для меня с очень простым тестом. Попробуйте выполнить следующие действия в своей системе, чтобы увидеть, не теряете ли вы чрезмерное время процессора.
Скрипт test.php:
<?php
for ($n=0;$n<1000;$n++)
{
usleep(10);
}
?>
Затем в командной строке запустите: time php test.php
Мои результаты следующие:
[ar@arctic ~]$ cat /etc/redhat-release
CentOS release 5.2 (Final)
[ar@arctic ~]$ time php test.php
real 0m1.020s
user 0m0.013s
sys 0m0.006s
Вы можете видеть, что пользовательское и системное время очень очень мало по сравнению с реальным (или прошедшим) временем. То есть загрузка процессора была очень низкой.
В системах Windows, если вы не установили ограничение времени выполнения вашего скрипта на 0 (set_time_limit(0);
), исполняемый файл php будет потреблять до 50% мощности ЦП при использовании функций sleep или usleep.