CodeIgniter Benchmarking

Education is not limited to just classrooms. It can be gained anytime, anywhere... - Ravi Ranjan (M.Tech-NIT)

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

 
 lang = "en"> 
       charset = "utf-8"> 
      CodeIgniter View Example 
   
	
    
      CodeIgniter View Example 
   
	

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.

View Example

To disable the profiling, execute the following URL.

http://yoursite.com/index.php/profiler/disable