usleep () php5 использует 40% неактивного процессора - PullRequest
2 голосов
/ 25 марта 2010

Привет, ребята, у меня странный вопрос,

У меня есть сценарий 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 ]

4 голосов
/ 25 марта 2010

Для меня такого не бывает с очень простым тестом. Попробуйте выполнить следующие действия в своей системе, чтобы убедиться, что процессорное время все еще увеличивается.

Скрипт 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

Вы можете видеть, что пользовательское и системное время очень очень мало по сравнению с реальным (или прошедшим) временем. т. е. загрузка ЦП была очень низкой.

3 голосов
/ 25 марта 2010

В системах Windows, если вы не установите ограничение времени выполнения вашего скрипта на 0 (set_time_limit(0);), исполняемый файл php будет потреблять до 50% ресурсов ЦП при использовании функций сна или отключения.

...