Treehouse: Grow your CSS skills. Land your dream job.

Last updated on:

Count Script Excecution Time

$execution_time = microtime(); // Start counting

// Your code

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

Comments

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

    or

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

    to display the output.

  2. daGrevis
    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. */
    
    • EPD

      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;
      
    • Matt
      Permalink to comment#

      Howdy,

      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!!!!

      Matt

  3. Rafael
    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. Djkanna
    Permalink to comment#

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

  5. 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.

    <?php
    /**
     * 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) -
                  this->mtime));
         }
    }
    

    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

We highly encourage you to post problematic HTML/CSS/JavaScript over on CodePen and include the link in your post. It's much easier to see, understand, and help with when you do that.

Markdown is supported, so you can write inline code like `<div>this</div>` or multiline blocks of code in in triple backtick fences like this:

```
<script>
  function example() {
    element.innerHTML = "<div>code</div>";
  }
</script>
```