Microtime naar seconde

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lano Heeren

Lano Heeren

24/09/2013 14:53:05
Quote Anchor link
Beste forum lezers,

Als ik onderstaande code uitvoer met een query krijg ik als return deze micro tijd:
the query took 1380027001.8022 seconds, is dit snel of juist traag? hoe kan ik de microtime omzetten naar seconde? bijvoorbeeld 0,4 seconden,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
time_beg = microtime(true);

hier de query

$time_end = microtime(true);

$time_res = $time_end - $time_start;

echo "the query took $time_res seconds";
?>
 
PHP hulp

PHP hulp

06/12/2024 21:23:03
 
Kris Peeters

Kris Peeters

24/09/2013 15:07:55
Quote Anchor link
micro betekent 1/1000000.

bv. 1000000 micrometer = 1 meter.

Dus gewoon delen door 1 miljoen, en eventueel afronden naar het aantal beduidende cijfers die je wil.
 
Lano Heeren

Lano Heeren

24/09/2013 15:26:19
Quote Anchor link
Bedankt voor je reactie Kris,

Als ik het deel door 1000000 krijg ik 1380, betekend dit dan 1,3 seconde?
dit is de code die ik gebruik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$time_beg = round(microtime(true) / 1000000);

query

$time_end = round(microtime(true) / 1000000);

$time_res = round($time_end - $time_start);
 
Erwin H

Erwin H

24/09/2013 15:33:56
Quote Anchor link
Er gaan twee dingen fout.

1) de opmerking van Kris klopt niet. Microtime geeft geen integer in microseconde terug, maar een float die tot de microseconde nauwkeurig is. De float zelf is in secondes (als timestamp), met het fractionele deel de microseconden.

2) alleen dat wetende zou je dus een getal kleiner dan 1 of rond de 1 moeten krijgen. Jij krijgt echter een heel groot getal. De reden daarvan is dat je script niet klopt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$time_beg
= microtime(true);
hier de query
$time_end = microtime(true);
$time_res = $time_end - $time_start;
?>

De start tijd zet je eerst in $time_beg, maar je rekent met $time_start. Dat klopt natuurlijk niet. Daardoor is het getal dat je ziet gewoon de eindtijd, niet het verschil.
Gewijzigd op 24/09/2013 15:34:41 door Erwin H
 
Lano Heeren

Lano Heeren

24/09/2013 15:41:18
Quote Anchor link
Ben er te lang mee bezig geweest denk ik, hahahha, bedankt voor de uitleg Erwin. het werkt nu.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.