Zeitverzögerung mit usleep
XaraX
- php
0 Fichtl0 XaraX0 Fichtl0 Christian Kruse0 XaraX
Guten Morgen Forumer!
Heute ärgert mich mein Rechner (PHP als CGI) irgend wie wieder. Ich bastle schon die ganze Nacht an einem Script, was im wesetlichen Teil in einer Schleife 500 mal ein Verzeichnis ausließt. Das dauert 0,028 sec. Da mir die Zeitspanne zu gering ist, habe ich innerhalb der Schleife mit usleep die Ausführung unterbrochen.
Allerdings ist dem script relativ egal, ob ich usleep(1) oder usleep(10000); verwende. Es arbeitet den Steuerfluß konstant in 20 sec ab :\
Mein Schmuckstück (PHP als Modul) daheim zeigt ein solches Verhalten zwar auch - allerdings in wesentlich geringeren Zeitangaben, da wäre dies noch in Ordnung.
Liegt es am CGI?
Gruß aus Berlin!
eddi
Hallo eddi
Allerdings ist dem script relativ egal, ob ich usleep(1) oder usleep(10000); verwende. Es arbeitet den Steuerfluß konstant in 20 sec ab :\
Hast du die Seite gelesen? (Vor allem die User-Comments)
http://www.php.net/usleep
Ist es vielleicht ein Windows?
Hast du schon mal eine der Alternativen aus den User-Comments (php.net) getestet?
Gehts mit sleep()?
Schöne Grüße
Der Fichtl
Hallo Fichtl,
Hast du die Seite gelesen? (Vor allem die User-Comments)
http://www.php.net/usleep
Nein, aber die anstatt http://de.php.net/manual/de/function.usleep.php
Ist es vielleicht ein Windows?
Nein.
OS: Debian i686
Server: Apache/1.3.29 (Unix) mod_ssl/2.8.16 OpenSSL/0.9.6k
PHP: CGI/4.3.4
Hast du schon mal eine der Alternativen aus den User-Comments (php.net) getestet?
Nein.
Gehts mit sleep()?
Keine Ahnung. Es geht mir nicht um das "wie anders" es geht mir ausschließlich um das "warum".
BTW: Wie Arbeitet usleep/sleep eigentlich im Innern?
Gruß aus Berlin!
eddi
Hallo,
Keine Ahnung. Es geht mir nicht um das "wie anders" es geht mir ausschließlich um das "warum".
beim warum kann ich dir leider nicht helfen. Aber grundsätzlich würde ich sagen das "wie anders" kann dich unter Umständen auch zum "warum" führen.
Schöne Grüße
Der Fichtl
Hallo XaraX,
BTW: Wie Arbeitet usleep/sleep eigentlich im Innern?
Die PHP-FUnktion ist nur ein Wrapper um den usleep()-Systemcall.
Und der beeinflusst halt den Scheduler. Wenn der Prozessor in der
Zeit wirklich nichts zu tun hat, wird er halt in den Sleep-Modus
(HLT-Instruction) geschickt (wobei letzteres nur fuer Unizes und
Windows-Versionen neuer Win98 gilt, NT faellt nicht darunter).
Grüße,
CK
Hallo XaraX,
Die PHP-FUnktion ist nur ein Wrapper um den usleep()-Systemcall.
Und der beeinflusst halt den Scheduler. Wenn der Prozessor in der
Zeit wirklich nichts zu tun hat, wird er halt in den Sleep-Modus
(HLT-Instruction) geschickt (wobei letzteres nur fuer Unizes und
Windows-Versionen neuer Win98 gilt, NT faellt nicht darunter).
Wie kommt es nun zu so einem gravierenden Unterschied? Zuhause habe ich allerhand Dienste zu laufen und höre zudem noch Musik.
Der besagte langsame Rechner weist mir 3425 kb Serverbetrieb für heute aus. Mehr nicht.
Hinzu kommt noch die Tatsache, daß er besser ausgestattet ist.
Gruß aus Berlin!
eddi