Profiling Your Application in CodeIgniter

Profiling Your Application in CodeIgniter

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


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

Enabling the Profiler

To enable the profiler place the following line anywhere within your Controller methods:


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

To disable the profiler you will use:


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 the Benchmark Library 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 theapplication/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 Library:

$sections = array(
        'config'  => TRUE,
        'queries' => TRUE


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

benchmarksElapsed time of Benchmark points and total execution timeTRUE
configCodeIgniter Config variablesTRUE
controller_infoThe Controller class and method requestedTRUE
getAny GET data passed in the requestTRUE
http_headersThe HTTP headers for the current requestTRUE
memory_usageAmount of memory consumed by the current request, in bytesTRUE
postAny POST data passed in the requestTRUE
queriesListing of all database queries executed, including execution timeTRUE
uri_stringThe URI of the current requestTRUE
session_dataData stored in the current sessionTRUE
query_toggle_countThe number of queries after which the query block will default to hidden.25


Disabling the save_queries setting in your database configuration will also effectively disable profiling for database queries and render the ‘queries’ setting above useless. You can optionally override this setting with

$this->db->save_queries = TRUE;

. Without this setting you won’t be able to view the queries or the last_query <database/helpers>.

Was this article helpful?

Related Articles

Leave A Comment?

You must be logged in to post a comment.