CodeIgniter - Benchmarking

Benchmarking


Setting Benchmark Points
If  you  want  to  measure  the  time  taken  to  execute  a  set  of  lines  or  memory  usage,  you can   calculate   it   by   using   Benchmarking   points   in   CodeIgniter.   There   is   a   separate “Benchmarking” class for this purpose in CodeIgniter.

This class is loaded automatically; you do not have to load it. It can be used anywhere in your  controller,  view,  and  model  classes.  All  you  have  to  do  is  to  mark  a  start  point  and end  point  and  then  execute  the  elapsed_time()  function  between  these  two  marked points and you can get the time it took to execute that code as shown below.

<?php
$this->benchmark->mark('code_start');
//  Some  code  happens  here
$this->benchmark->mark('code_end');
echo  $this->benchmark->elapsed_time('code_start',  'code_end');

?>

To  display  the  memory  usage,  use  the  function  memory_usage()  as  shown  in  the following code.

<?php
echo  $this->benchmark->memory_usage();

?>

Example

Create  a  controller  called  Profiler_controller.php and save it in application/controller/Profiler_controller.php

<?php
class  Profiler_controller  extends  CI_Controller  {
public  function  index()
{

//enable  profiler
$this->output->enable_profiler(TRUE);
$this->load->view('test');
}
public  function  disable()
{
//disable  profiler
$this->output->enable_profiler(FALSE);
$this->load->view('test');
}
}

?>


Create a view file called test.php and save it at application/views/test.php


<!DOCTYPE  html>
<html  lang="en">
<head>
<meta  charset="utf-8">
<title>CodeIgniter  View  Example</title>
</head>
<body>
CodeIgniter  View  Example
</body>

</html>

Change  the  routes.php   file  at   application/config/routes.php   to  add   route  for  the above controller and add the following line at the end of the file.

$route['profiler']  =  "Profiler_controller";

$route['profiler/disable']  =  "Profiler_controller/disable";

After  that,  you  can  type  the  following  URL in  the  address  bar  of  your  browser  to  execute the example.
http://yoursite.com/index.php/profiler

The  above  URL  will  enable  the  profiler  and  it  will  produce  an  output  as  shown  in  the following screenshot.


To disable the profiling, execute the following URL.




Comments