Verstrichene Zeit in Millisekunden

dwex

Erfahrenes Mitglied
Hallo Leute,

ich hätte wirklich die Suche bemüht aber ich bin bisher nicht draufgekommen wie ich mein Problem lösen könnte.

Ich möchte mir gerade eine "Serverüberwachung" bauen.
Da ich ein paar Server im Netz habe möchte ich diese gerne auf einigen Ports überwachen.
Das mache ich mit fsockopen() das funktioniert auch.
Jetzt möchte ich jedoch die verstrichene Zeit in Millisekunden (ist das die Abkürzung ms? - wenn nicht dann eben in ms) angezeigt bekommen wie lange diese Abfrage gedauert hat.

Mit microtime() komme ich nicht weiter, da der mir eine Abfrage von der ich weiß das Sie mindestens 50 ms braucht (anderes Programm!) jetzt plötzlich mit nur 0.87877 ausgibt.
Das Programm und mein Script laufen auf dem selben Server - also müsste hier auch zumindest ein annähernd gleicher Wert rauskommen.

Was mache ich falsch?

Vielen Dank für euere Hilfe im Voraus!
 
Gumbo hat gesagt.:
Der zurückgegebene Wert entspricht dem Format „<Millisekunden> <Sekunden>“.
Ja das ist mir schon klar - ich glaube wir reden aneinander vorbei.
Ein Beispiel:
PHP:
<?php
$start = microtime();
$machwas = irgendwelchebefehle();
$ende = microtime();
?>
So jetzt hat $start einen Wert z.B. 0.9000 1234567890 und $ende einen Wert z.B. 0.9100 123456789 demnach wäre dann jetzt also die Zeit von 0.01 Millisekunden vergangen oder?
Wenn ich eine fsockopen()-Abfrage mache von der ich weis, dass diese 50 ms benötigt und dann nur 0.87877 rauskommt dann passt doch was nicht oder?
Ausserdem habe ich mir die microtime()-Funktion nochmals angeschaut und da steht was von Microsekunden - ist das evtl. nicht gleich Millisekunden?
 
Auch das funktioniert nicht - hier bekomme ich teilweise "Mond"-Zahlen.

Ich habe es jetzt anders gelöst:
PHP:
<?php

$start = uniqueTimeStamp();

$machwas = irgendwelchebefehle(); 

$ende = uniqueTimeStamp();

$differenz = $ende-$start;
$differenz = $differenz/10; // warum auch immer
$differenz = (int)$differenz;

echo "Die Ausführung dauerte $differenz ms";

function uniqueTimeStamp() {
  $milliseconds = microtime();
  $timestring = explode(" ", $milliseconds);
  $sg = $timestring[1];
  $mlsg = substr($timestring[0], 2, 4);
  $timestamp = $sg.$mlsg;
  return $timestamp; 
}

?>
Jetzt bekomme ich eine Zahl ausgegeben welche immer im Bereich von 45-55 ms liegt - also es müsste passen.
Was sagst du dazu Gumbo?
 
Sven Mintel hat gesagt.:
Mmmh...das Millisekunden nicht dasselbe sind wie Mikrosekunden, ist dir aber schon klar :confused:
Ich denke das mir das immer klarer wird (siehe auch meine Frage dazu weiter oben).
Aber das sind doch jetzt Millisekunden oder nicht?
Wenn nein - wie mache ich es dann?
 
Zurück