Count Script Excecution Time

$execution_time = microtime(); // Start counting

// Your code

$execution_time = microtime() - $execution_time;
printf('It took %.5f sec', $execution_time);


  1. User Avatar
    Dominik Porada
    Permalink to comment#
    $execution_time = sprintf('It took %.5f sec', $execution_time);
    echo $execution_time;


    printf('It took %.5f sec', $execution_time);

    to display the output.

  2. User Avatar
    Permalink to comment#

    I would suggest something like this…

    $time = microtime();
    $time = explode(' ', $time);
    $time = $time[1] + $time[0];
    $start = $time;
    // Your code.
    $time = microtime();
    $time = explode(' ', $time);
    $time = $time[1] + $time[0];
    $finish = $time;
    $page_time = ($finish - $start);
    $page_time = round($page_time, 3); // For users.
    echo $page_time;
    /* By daGrevis. */
    • User Avatar

      Here’s the stripped down version of daGrevis’ fine work:

      $startTime = array_sum(explode(' ',  microtime()));
      /* Your code here */
      $totalTime = array_sum(explode(' ',  microtime())) - $startTime;
      echo $totalTime;
    • User Avatar
      Permalink to comment#


      Just wanted to say thanks for this article, I used it to test the difference between a single MySQL call and a file being picked up locally. The difference was amazing Local file storage was 6-7 faster!!!!


  3. User Avatar
    Permalink to comment#

    Since php 5.1, the timestamp of the start of the request is available in $_SERVER['REQUEST_TIME']

    So you can do :

    $page_time = round(microtime(true)-$_SERVER['REQUEST_TIME'], 3);
  4. User Avatar
    Permalink to comment#

    Perhaps register_shutdown_function() could be of some use here :)

  5. User Avatar
    Russ Thompson
    Permalink to comment#

    I time all my programs and log the timing to a file to help me tune my database system. I have developed a class to help.

     * Time Code Class
      * @author Russell Thompson
    class pgmTiming
          private $mtime;
          public function __construct()  {
              $this->mtime = microtime(true);
          public function  __destruct()  {
               $pgmName = $_SERVER["SCRIPT_NAME"];
               print ("tm: " . $pgmName . " " . (microtime(true) -

    in my programs, after I make sure the class is loaded (I depend on __autoload) All I need is one line.

    $tm = new pgmTiming();

    As part of php cleanup, the destructor will run and print out the timing. I have the instantiation statement in a require_once file.

    In the example above it just prints the result. My actual destructor writes to a log file so I can average timings.

Leave a Comment

Posting Code!

You may write comments in Markdown. This makes code easy to post, as you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences (```) with double new lines before and after.

Code of Conduct

Absolutely anyone is welcome to submit a comment here. But not all comments will be posted. Think of it like writing a letter to the editor. All submitted comments will be read, but not all published. Published comments will be on-topic, helpful, and further the discussion or debate.

Want to tell us something privately?

Feel free to use our contact form. That's a great place to let us know about typos or anything off-topic.