Profiling Your Application : CodeIgniter User Guide

# CodeIgniter User Guide Version 2.2.6

Search User Guide

# Profiling Your Application

The Profiler Class will display benchmark results, queries you have run, and $_POST data at the bottom of your pages. This information can be useful during development in order to help with debugging and optimization.

## Initializing the Class

Important: This class does `NOT` need to be initialized. It is loaded automatically by the Output Class if profiling is enabled as shown below.

## Enabling the Profiler

To enable the profiler place the following function anywhere within your Controller functions:

`$this->output->enable_profiler(TRUE);`

When enabled a report will be generated and inserted at the bottom of your pages.

To disable the profiler you will use:

`$this->output->enable_profiler(FALSE);`

## Setting Benchmark Points

In order for the Profiler to compile and display your benchmark data you must name your mark points using specific syntax.

Please read the information on setting Benchmark points in Benchmark Class page.

## Enabling and Disabling Profiler Sections

Each section of Profiler data can be enabled or disabled by setting a corresponding config variable to TRUE or FALSE. This can be done one of two ways. First, you can set application wide defaults with the application/config/profiler.php config file.

`$config['config'] = FALSE;
$config['queries'] = FALSE;
`

In your controllers, you can override the defaults and config file values by calling the `set_profiler_sections()` method of the Output class:

`$sections = array(
'config' => TRUE,
'queries' => TRUE
);
$this->output->set_profiler_sections($sections);`

Available sections and the array key used to access them are described in the table below.

Key | Description | Default
--- | --- | ---
benchmarks | Elapsed time of Benchmark points and total execution time | TRUE
config | CodeIgniter Config variables | TRUE
controller_info | The Controller class and method requested | TRUE
get | Any GET data passed in the request | TRUE
http_headers | The HTTP headers for the current request | TRUE
memory_usage | Amount of memory consumed by the current request, in bytes | TRUE
post | Any POST data passed in the request | TRUE
queries | Listing of all database queries executed, including execution time | TRUE
uri_string | The URI of the current request | TRUE
query_toggle_count | The number of queries after which the query block will default to hidden. | 25