/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/user_guide/libraries/benchmark.html

  • Committer: galaxyAbstractor
  • Date: 2013-04-10 15:49:32 UTC
  • mto: (19.1.5 lenasys)
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: galaxyabstractor@gmail.com-20130410154932-4vizlzk0ar5gykvi
* Added an simple admin panel to the codeviewer-cmssy stuff
* Redesigned a bit like the mockups - still stuff to come
* Implemented the codeviewer + admin panel again using the Framework CodeIgniter instead 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
3
<head>
 
4
 
 
5
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
6
<title>Benchmarking Class : CodeIgniter User Guide</title>
 
7
 
 
8
<style type='text/css' media='all'>@import url('../userguide.css');</style>
 
9
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
 
10
 
 
11
<script type="text/javascript" src="../nav/nav.js"></script>
 
12
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
 
13
<script type="text/javascript" src="../nav/moo.fx.js"></script>
 
14
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
 
15
 
 
16
<meta http-equiv='expires' content='-1' />
 
17
<meta http-equiv= 'pragma' content='no-cache' />
 
18
<meta name='robots' content='all' />
 
19
<meta name='author' content='ExpressionEngine Dev Team' />
 
20
<meta name='description' content='CodeIgniter User Guide' />
 
21
 
 
22
</head>
 
23
<body>
 
24
 
 
25
<!-- START NAVIGATION -->
 
26
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
 
27
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
 
28
<div id="masthead">
 
29
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
 
30
<tr>
 
31
<td><h1>CodeIgniter User Guide Version 2.1.3</h1></td>
 
32
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
 
33
</tr>
 
34
</table>
 
35
</div>
 
36
<!-- END NAVIGATION -->
 
37
 
 
38
 
 
39
<!-- START BREADCRUMB -->
 
40
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
 
41
<tr>
 
42
<td id="breadcrumb">
 
43
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
 
44
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
 
45
Benchmarking Class
 
46
</td>
 
47
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
 
48
</tr>
 
49
</table>
 
50
<!-- END BREADCRUMB -->
 
51
 
 
52
<br clear="all" />
 
53
 
 
54
 
 
55
<!-- START CONTENT -->
 
56
<div id="content">
 
57
 
 
58
 
 
59
<h1>Benchmarking Class</h1>
 
60
 
 
61
<p>CodeIgniter has a Benchmarking class that is always active, enabling the time difference between any
 
62
two marked points to be calculated.</p>
 
63
 
 
64
<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p>
 
65
 
 
66
 
 
67
<p>In addition, the benchmark is always started the moment the framework is
 
68
invoked, and ended by the output class right before sending the final view to the browser, enabling a very accurate
 
69
timing of the entire system execution to be shown.</p>
 
70
 
 
71
 
 
72
<h3>Table of Contents</h3>
 
73
 
 
74
<ul>
 
75
<li><a href="#using">Using the Benchmark Class</a></li>
 
76
<li><a href="#profiler">Profiling Your Benchmark Points</a></li>
 
77
<li><a href="#execution">Displaying Total Execution Time</a></li>
 
78
<li><a href="#memory">Displaying Memory Consumption</a></li>
 
79
</ul>
 
80
 
 
81
 
 
82
 
 
83
<a name="using"></a>
 
84
<h2>Using the Benchmark Class</h2>
 
85
 
 
86
<p>The Benchmark class can be used within your <a href="../general/controllers.html">controllers</a>,  <a href="../general/views.html">views</a>, or your  <a href="../general/models.html">models</a>.  The process for usage is this:</p>
 
87
 
 
88
<ol>
 
89
<li>Mark a start point</li>
 
90
<li>Mark an end point</li>
 
91
<li>Run the "elapsed time" function to view the results</li>
 
92
</ol>
 
93
 
 
94
<p>Here's an example using real code:</p>
 
95
 
 
96
<code>$this->benchmark->mark('code_start');<br />
 
97
<br />
 
98
// Some code happens here<br />
 
99
<br />
 
100
$this->benchmark->mark('code_end');<br />
 
101
<br />
 
102
echo $this->benchmark->elapsed_time('code_start', 'code_end');</code>
 
103
 
 
104
<p class="important"><strong>Note:</strong> The words "code_start" and "code_end" are arbitrary.  They are simply words used to set two markers.  You can
 
105
use any words you want, and you can set multiple sets of markers. Consider this example:</p>
 
106
 
 
107
<code>$this->benchmark->mark('dog');<br />
 
108
<br />
 
109
// Some code happens here<br />
 
110
<br />
 
111
$this->benchmark->mark('cat');<br />
 
112
<br />
 
113
// More code happens here<br />
 
114
<br />
 
115
$this->benchmark->mark('bird');<br />
 
116
<br />
 
117
echo $this->benchmark->elapsed_time('dog', 'cat');<br />
 
118
echo $this->benchmark->elapsed_time('cat', 'bird');<br />
 
119
echo $this->benchmark->elapsed_time('dog', 'bird');</code>
 
120
 
 
121
 
 
122
<a name="profiler"></a>
 
123
<h2>Profiling Your Benchmark Points</h2>
 
124
 
 
125
<p>If you want your benchmark data to be available to the
 
126
<a href="../general/profiling.html">Profiler</a> all of your marked points must be set up in pairs, and
 
127
each mark point name must end with <kbd>_start</kbd> and <kbd>_end</kbd>.
 
128
Each pair of points must otherwise be named identically. Example:</p>
 
129
 
 
130
<code>
 
131
$this->benchmark->mark('my_mark<kbd>_start</kbd>');<br />
 
132
<br />
 
133
// Some code happens here...<br />
 
134
<br />
 
135
$this->benchmark->mark('my_mark<kbd>_end</kbd>');
 
136
<br /><br />
 
137
 
 
138
$this->benchmark->mark('another_mark<kbd>_start</kbd>');<br />
 
139
<br />
 
140
// Some more code happens here...<br />
 
141
<br />
 
142
$this->benchmark->mark('another_mark<kbd>_end</kbd>');
 
143
</code>
 
144
 
 
145
<p>Please read the <a href="../general/profiling.html">Profiler page</a> for more information.</p>
 
146
 
 
147
 
 
148
<a name="execution"></a>
 
149
<h2>Displaying Total Execution Time</h2>
 
150
 
 
151
<p>If you would like to display the total elapsed time from the moment CodeIgniter starts to the moment the final output
 
152
is sent to the browser, simply place this in one of your view templates:</p>
 
153
 
 
154
<code>&lt;?php echo $this->benchmark->elapsed_time();?&gt;</code>
 
155
 
 
156
<p>You'll notice that it's the same function used in the examples above to calculate the time between two point, except you are
 
157
<strong>not</strong> using any parameters.  When the parameters are absent, CodeIgniter does not stop the benchmark until right before the final
 
158
output is sent to the browser.  It doesn't matter where you use the function call, the timer will continue to run until the very end.</p>
 
159
 
 
160
<p>An alternate way to show your elapsed time in your view files is to use this pseudo-variable, if you prefer not to use the pure PHP:</p>
 
161
<code>{elapsed_time}</code>
 
162
 
 
163
<p class="important"><strong>Note:</strong> If you want to benchmark anything within your controller
 
164
functions you must set your own start/end points.</p>
 
165
 
 
166
<a name="memory"></a>
 
167
<h2>Displaying Memory Consumption</h2>
 
168
 
 
169
<p>If your PHP installation is configured with --enable-memory-limit, you can display the amount of memory consumed by the entire
 
170
system using the following code in one of your view file:</p>
 
171
 
 
172
<code>&lt;?php echo $this->benchmark->memory_usage();?&gt;</code>
 
173
<p>Note: This function can only be used in your view files. The consumption will reflect the total memory used by the entire app.</p>
 
174
 
 
175
<p>An alternate way to show your memory usage in your view files is to use this pseudo-variable, if you prefer not to use the pure PHP:</p>
 
176
<code>{memory_usage}</code>
 
177
 
 
178
 
 
179
 
 
180
 
 
181
</div>
 
182
<!-- END CONTENT -->
 
183
 
 
184
 
 
185
 
 
186
<div id="footer">
 
187
<p>
 
188
Previous Topic:&nbsp;&nbsp;<a href="../doc_style/index.html">Writing Documentaion</a>
 
189
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
 
190
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
 
191
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
 
192
Next Topic:&nbsp;&nbsp;<a href="calendar.html">Calendar Class</a>
 
193
</p>
 
194
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
 
195
</div>
 
196
 
 
197
</body>
 
198
</html>
 
 
b'\\ No newline at end of file'