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.
http://yoursite.com/index.php/profiler/disable