usleep () php5 boşta CPU% 40 kullanır

2 Cevap php

Merhaba çocuklar ben, garip bir sorum var

Bazı gerekli bekleyin, ama ne fark var onun bir zamanlar usleep üzerine () kullanmak görünüyor varsa ben bir cli php script (bu bağlıdır 100ms somtimes, somtimes 1 sn, bazen 2sn) usleep kullanan Centos 5.x üzerinde çalışan var boşta CPU yaklaşık% 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

any ideas ?
cheers

2 Cevap

Bu çok basit bir testcase benim için olmaz. Hala aşırı CPU zamanı olsun eğer görmek için sisteminizde aşağıdaki deneyin.

Komut dnm.php:

<?php
for ($n=0;$n<1000;$n++)
{
  usleep(10);
}
?>

Sonra komut satırı run: time php test.php

Aşağıdaki gibi benim sonuçlar şunlardır:

[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

Siz kullanıcı ve sys zaman gerçek (veya geçen) zaman karşılaştırıldığında çok çok küçük olduğunu görebilirsiniz. yani çok düşük CPU kullanımı oldu.

Eğer 0'a için komut dosyası yürütme zaman sınırı ayarlamak yoksa uyku veya usleep işlevlerini kullanarak Windows sistemleri altında, (set_time_limit(0);), php yürütülebilir 50'ye kadar% CPU gücü yemek olacaktır.