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.

Другие вопросы по тегам