blob: 28c1dd7b81b926b85d27d676c7cfdc3a2a772473 [file] [log] [blame]
Derek Jones8ede1a22011-10-05 13:34:52 -05001##########################
2Profiling Your Application
3##########################
4
5The Profiler Class will display benchmark results, queries you have run,
6and $_POST data at the bottom of your pages. This information can be
7useful during development in order to help with debugging and
8optimization.
9
10Initializing the Class
11======================
12
13.. important:: This class does NOT need to be initialized. It is loaded
14 automatically by the :doc:`Output Class <../libraries/output>` if
15 profiling is enabled as shown below.
16
17Enabling the Profiler
18=====================
19
20To enable the profiler place the following function anywhere within your
21:doc:`Controller <controllers>` functions::
22
23 $this->output->enable_profiler(TRUE);
24
25When enabled a report will be generated and inserted at the bottom of
26your pages.
27
28To disable the profiler you will use::
29
30 $this->output->enable_profiler(FALSE);
31
32Setting Benchmark Points
33========================
34
35In order for the Profiler to compile and display your benchmark data you
36must name your mark points using specific syntax.
37
38Please read the information on setting Benchmark points in :doc:`Benchmark
39Class <../libraries/benchmark>` page.
40
41Enabling and Disabling Profiler Sections
42========================================
43
44Each section of Profiler data can be enabled or disabled by setting a
45corresponding config variable to TRUE or FALSE. This can be done one of
46two ways. First, you can set application wide defaults with the
47application/config/profiler.php config file.
48
49::
50
Derek Jonesa1360ef2011-10-05 17:22:53 -050051 $config['config'] = FALSE;
52 $config['queries'] = FALSE;
Derek Jones8ede1a22011-10-05 13:34:52 -050053
54In your controllers, you can override the defaults and config file
55values by calling the set_profiler_sections() method of the :doc:`Output
56class <../libraries/output>`::
57
Derek Jonesa1360ef2011-10-05 17:22:53 -050058 $sections = array(
59 'config' => TRUE,
60 'queries' => TRUE
61 );
62
63 $this->output->set_profiler_sections($sections);
Derek Jones8ede1a22011-10-05 13:34:52 -050064
65Available sections and the array key used to access them are described
66in the table below.
67
68Key
69Description
70Default
71**benchmarks**
72Elapsed time of Benchmark points and total execution time
73TRUE
74**config**
75CodeIgniter Config variables
76TRUE
77**controller_info**
78The Controller class and method requested
79TRUE
80**get**
81Any GET data passed in the request
82TRUE
83**http_headers**
84The HTTP headers for the current request
85TRUE
86**memory_usage**
87Amount of memory consumed by the current request, in bytes
88TRUE
89**post**
90Any POST data passed in the request
91TRUE
92**queries**
93Listing of all database queries executed, including execution time
94TRUE
95**uri_string**
96The URI of the current request
97TRUE
98**session_data**
99Data stored in the current session
100TRUE
101**query_toggle_count**
102The number of queries after which the query block will default to
103hidden.
10425