
When developing PHP-driven websites its often very useful to know how long your
pages took to process. This not only gives you some idea of the efficiency
of your websites and of the server running them, but may help you diagnose problems, benchmark code corrections/additions,
etc. The best way to do this is program PHP to read the system time at the beginning of the page,
scan it again near the
end, and then work out the difference between the values. To get us
started, just add the following basic code near the top of your page, before all the main
content:
<?php
$starttime = microtime();
$startarray = explode(" ", $starttime);
$starttime = $startarray[1] + $startarray[0]; ?>
It may look complex, but the above code is actually dead simple. Microtime
is a function that returns a value giving the current time in seconds and
milliseconds from the UNIX Epoch (internationally set as 0:00:00 January 1, 1970
GMT). Explode then splits this value into its two component parts
(seconds and milliseconds), and then inserts both values separately into an
array. With those values determined, of course, we can go on to
insert the following code near the end of the webpage, after all the main code:
<?php
$endtime = microtime();
$endarray = explode(" ", $endtime);
$endtime = $endarray[1] + $endarray[0];
$totaltime = $endtime - $starttime;
$totaltime = round($totaltime,5);
echo "This page loaded in $totaltime seconds."; ?>
I'm pretty sure you can guess what's going on here. The microtime is
determined again and inserted into the endtime array. We then delete the
starttime array from it and come up with a brand new value, totaltime (which is
the value we've wanted all along). The number is then rounded to 5
significant figures, and output by the ECHO command. If you've entered
everything correctly, you should end up with a line of text saying something
like this:
Page generated in 0.27283 seconds
And that, as they say, is that! As you can probably guess, the lower
this value the better the performance. Don't get too obsessed with these
figures, though, because they also rely heavily on server load levels, mySQL
commands, etc. Just look at everything with a scientifically objective
eye, and all will be fine... :)
- Tutorial written by Man1c M0g
|