Skip to the content...

Welcome to the David Walsh Blog. I'm a MooTools, Dojo, jQuery, CSS, and PHP Web Developer located in Madison, Wisconsin, United States. Please contact me if I can make your experience on my website better.

PHP Optimization – Using A Timer To Benchmark Code And Increase Speed

3 Responses »

One of the best parts about being a programmer is that there's seemingly always a better way to do things. A simple code tweak can drastically improve the execution time of your web application. The faster your application executes the quicker you release precious server resources.

The first step in optimizing your existing PHP-based web application for speed is knowing which portions of your website need to be improved. Do your MySQL queries take too long? Are you using efficient functions? Are you using unnecessary server resources?

In my web applications I use a timer class to benchmark how long queries, functions, and entire pages are taking to complete.

The Function

class timer
{
	var $start;
	var $pause_time;

	/*  start the timer  */
	function timer($start = 0)
	{
		if($start) { $this->start(); }
	}

	/*  start the timer  */
	function start()
	{
		$this->start = $this->get_time();
		$this->pause_time = 0;
	}

	/*  pause the timer  */
	function pause()
	{
		$this->pause_time = $this->get_time();
	}

	/*  unpause the timer  */
	function unpause()
	{
		$this->start += ($this->get_time() - $this->pause_time);
		$this->pause_time = 0;
	}

	/*  get the current timer value  */
	function get($decimals = 8)
	{
		return round(($this->get_time() - $this->start),$decimals);
	}

	/*  format the time in seconds  */
	function get_time()
	{
		list($usec,$sec) = explode(' ', microtime());
		return ((float)$usec + (float)$sec);
	}
}

The Usage

$timer = new timer(1); // constructor starts the timer, so no need to do it ourselves
/*

 ... mysql query ...

*/
$query_time = $timer->get();
/*

 ... page processing ...

*/
$processing_time = $timer->get();

The Output

Once you know which areas of your website need improvement, making your code more efficient can be easy if you're code is well-commented and organized. Use the timer -- which areas of your website did you notice needed improvement and how did you optimize the code? I'd love to hear your problems and solutions!

Discussion

  1. clyde
    September 24, 2008 @ 1:12 pm

    Hi!
    I’m new to php and I’m making a php code that will search for operating system, browser, ip address used by a user who log on my web server which is stored in a mysql db.

    I’m using three queries that will display distinct operating system, browser and ip address used by the user.

    So my problem is that my code loads real slow, it takes more than a minute to display the results.

    How do I make this load faster?

  2. April 20, 2010 @ 8:40 pm

    Thanks for this usefull class! I never thought about my codes performance before.

  3. May 12, 2010 @ 1:55 pm

    Hi, I’m currently working on a project which requires some code optimization, the codes was written by someone else, I do need to optimize asap. The queries take s forever to fetch about 5500 records in mysql using php script:

    Thanks for your prompt response.

Be Heard!

Share your thoughts with fellow developers of all skill levels! I want to hear from you!

Name*:
Email*:
Website:  
Wrap your code with <code> tags, f00!