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