PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Microtime in wirkliche Sekunden umrechnen...


The Prophet
04.09.2002, 17:09:18
Tachen,

ich habe eine Zahl berechnet und würde ich sie gern in "wirkliche" Sekunden umwandeln. In die wovon jede Minute 60 hat :p.
Hab nur leider überhaupt keinen Plan wie...
Mfg und Danke

|Coding
04.09.2002, 18:38:59
microsekunden * 1000 (1000 microsekunden = 1 Sekunde)

$sekunden = microtime() * 1000;

The Prophet
04.09.2002, 19:03:40
hätte ich auch selbst drauf kommen können. Nur stimmt glaube ich meine Anzeige nicht mehr ganz.


$shorten = microtime()*1000;
print (number_format($shorten,3));
print (" seconds");


Damit lasse ich mir die Dauer der Generierung einer Seite ausgeben. Die Werte sind nun allerdings astronomisch.

|Coding
04.09.2002, 19:06:55
was meinst du mit astronomisch?
sind die werte in der gegend von 0.002 - 0.05 angesiedelt?

The Prophet
04.09.2002, 19:14:23
Die Werte schwanken stark. Von 1xx.xxx bis 9xx.9xx. seconds

?

|Coding
04.09.2002, 19:19:52
ach ne... hehe du musst es so machen...

das muss an den anfang der datei... am besten in die aller erste line.

$microtime1 = explode(' ', (microtime() * 1000));
$microtime1 = $microtime1[1] + $microtime1[0];



und das muss ans ende der datei oder zumindes dahin wo die zeitausgabe gemacht werden soll.

$microtime2 = explode(' ', (microtime() * 1000));
$microtime2 = $microtime2[1] + $microtime2[0];
print number_format(($microtime2 - $microtime1), 3);

gerechnet wird die endzeit ($microtime2) minus startzeit ($microtime1) die dazwischen liegende zeit ist die zeit die der parser gebraucht hat zum verarbeiten deiner seite... DAS IST NICHT DIE LADEZEIT...

jetzt sollte es funzen... aber bedenke, windows server kennen kein microtime(), da musst du time() benutzen.

The Prophet
04.09.2002, 19:25:13
Meinst du die Art die ich zur Berechnung genutzt habe funkt nicht? Hab es zumindestens so aus der Doku von PHP entnommen :o)
Ich weiß net ob es überhaupt Sinn macht, da ich die Anzeige in einer Footer Datei erstellen lasse und in meine Index.php Include. Gilt der Wert für die footer.php oder die index.php?

mfg & danke

|Coding
04.09.2002, 19:31:26
das gilt für die seite in der

$microtime1 = explode(' ', (microtime() * 1000));
$microtime1 = $microtime1[1] + $microtime1[0];

steht.

und wenn du in den footer die ausgabe machst ist das kein problem, weil der footer ja includiert und ebenfalls ausgeführt wird.

The Prophet
04.09.2002, 19:33:29
Oki das ist nen Wort. Danke
Übrigens hab die alte Funktion mit microtime() mal eben auf nen Linux System getestet bringt aber auch keinen Erfolg.

|Coding
04.09.2002, 19:36:33
kann ja auch nicht, du hast ja nur den wert in microsekunden oder sekunden seit dem start der unix epoche (01.01.1970 00:00:00). darum auch diese gewaltige zahl.

The Prophet
04.09.2002, 19:40:40
Man lernt eben nie aus :)
Hier das Ergebnis.
http://www.test5182.test-account.com/guestbook/
Danke nochmal :)

|Coding
04.09.2002, 19:48:08
bidde ;-)

na siehst du, hat doch noch geklappt ;-)

CyberAge
04.09.2002, 20:47:09
statt *1000 versucht mal /1000 , da 10000ms = 10s

|Coding
04.09.2002, 20:51:30
auh backe... *rot werd* naja kann ja jedem mathe genie mal passieren ;-)

aber auf der website hat ers ja gepeilt unf selber berichtigt...

The Prophet
04.09.2002, 21:28:28
@ |Coding da wäre ich mir nicht so sicher :P

Ich hab das nicht weiter durchgerechnet ;) Aber wenns CyberAge sagt werd ich es mal ändern....

/edit

Ne also /1000 kann es auch net sein da kommt 0 raus.


$microtime1 = explode(' ', (microtime() / 1000));
$microtime1 = $microtime1[1] + $microtime1[0];

$microtime2 = explode(' ', (microtime() / 1000));
$microtime2 = $microtime2[1] + $microtime2[0];
print number_format(($microtime2 - $microtime1), 3);
print (" seconds");

|Coding
04.09.2002, 21:52:53
doch doch, das was CyberAge geschrieben hat, ist schon richtig.

du musst nur die anzahl der sichtbaren nachkommastellen erhöhen. ich habe sie mal auf 10 gesetzt. ausserdem, du kannst die beiden prints die du machst, auch zu einem verbinden.

hier die aktuelle version.


$microtime1 = explode(' ', (microtime() / 1000));
$microtime1 = $microtime1[1] + $microtime1[0];

$microtime2 = explode(' ', (microtime() / 1000));
$microtime2 = $microtime2[1] + $microtime2[0];
print number_format(($microtime2 - $microtime1), 10).' seconds';

The Prophet
04.09.2002, 22:08:38
Ohh schneller Code :P

Bei 6 Stellen hatte ich aufgehört zu versuchen. Die Anzeige ist wirklich lustig und der parser schnell :)

/edit
haltet ihr die Zahlen wirklich für realistisch?

mfg

|Coding
04.09.2002, 22:20:00
also ich schon.
die paar byte die da bearbeitet werden müssen...
die heutigen CPUs leisten mehrere GB/s... da sollte man das schon als realistisch ansehen können...

The Prophet
04.09.2002, 22:53:20
Ok hast mich überzeugt :)

CyberAge
05.09.2002, 05:44:06
versuche mal mehr kommastellen! kann ja sein, dass das script so schnell ausgeführt wird, dass das unterhalb von 0,001 sekunden passiert!

|Coding
05.09.2002, 06:19:40
es muss noch schneller sein. er hatte ja anfangs 3 nachkommastellen gehabt, und da kam immer 0 raus....

mittlerweile steht es auf 10.

CyberAge
05.09.2002, 06:25:45
also wann nur ein echo dazwischen ist wird man sicherlich nicht mal eine halbe mircosekunde brauchen!

The Prophet
05.09.2002, 08:30:52
Das betraff ja meine Frage zu Anfangs. Da ich wie gesagt die Brechnung und das Ergebnis nur Include. Ob es nun nur für die zu includende Datei oder für die Datei die included gilt.