diff options
author | Andrey Andreev <narf@devilix.net> | 2019-01-16 16:49:35 +0100 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2019-01-16 16:49:35 +0100 |
commit | c576995304fc3609cca0b7b92d1b2cd611ec82f5 (patch) | |
tree | c8b9121cb295b56bbabe3aeaad0a3eb1f2d390bb /user_guide_src/source/libraries/benchmark.rst | |
parent | 4eaf80a6ec0b58a0adc95638153363e00ebf5378 (diff) |
[ci skip] 3.1.10 release
Diffstat (limited to 'user_guide_src/source/libraries/benchmark.rst')
-rw-r--r-- | user_guide_src/source/libraries/benchmark.rst | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/user_guide_src/source/libraries/benchmark.rst b/user_guide_src/source/libraries/benchmark.rst deleted file mode 100644 index 8fc06be12..000000000 --- a/user_guide_src/source/libraries/benchmark.rst +++ /dev/null @@ -1,168 +0,0 @@ -################## -Benchmarking Class -################## - -CodeIgniter has a Benchmarking class that is always active, enabling the -time difference between any two marked points to be calculated. - -.. note:: This class is initialized automatically by the system so there - is no need to do it manually. - -In addition, the benchmark is always started the moment the framework is -invoked, and ended by the output class right before sending the final -view to the browser, enabling a very accurate timing of the entire -system execution to be shown. - -.. contents:: - :local: - -.. raw:: html - - <div class="custom-index container"></div> - -************************* -Using the Benchmark Class -************************* - -The Benchmark class can be used within your -:doc:`controllers </general/controllers>`, -:doc:`views </general/views>`, or your :doc:`models </general/models>`. -The process for usage is this: - -#. Mark a start point -#. Mark an end point -#. Run the "elapsed time" function to view the results - -Here's an example using real code:: - - $this->benchmark->mark('code_start'); - - // Some code happens here - - $this->benchmark->mark('code_end'); - - echo $this->benchmark->elapsed_time('code_start', 'code_end'); - -.. note:: The words "code_start" and "code_end" are arbitrary. They - are simply words used to set two markers. You can use any words you - want, and you can set multiple sets of markers. Consider this example:: - - $this->benchmark->mark('dog'); - - // Some code happens here - - $this->benchmark->mark('cat'); - - // More code happens here - - $this->benchmark->mark('bird'); - - echo $this->benchmark->elapsed_time('dog', 'cat'); - echo $this->benchmark->elapsed_time('cat', 'bird'); - echo $this->benchmark->elapsed_time('dog', 'bird'); - - -Profiling Your Benchmark Points -=============================== - -If you want your benchmark data to be available to the -:doc:`Profiler </general/profiling>` all of your marked points must -be set up in pairs, and each mark point name must end with _start and -_end. Each pair of points must otherwise be named identically. Example:: - - $this->benchmark->mark('my_mark_start'); - - // Some code happens here... - - $this->benchmark->mark('my_mark_end'); - - $this->benchmark->mark('another_mark_start'); - - // Some more code happens here... - - $this->benchmark->mark('another_mark_end'); - -Please read the :doc:`Profiler page </general/profiling>` for more -information. - -Displaying Total Execution Time -=============================== - -If you would like to display the total elapsed time from the moment -CodeIgniter starts to the moment the final output is sent to the -browser, simply place this in one of your view templates:: - - <?php echo $this->benchmark->elapsed_time();?> - -You'll notice that it's the same function used in the examples above to -calculate the time between two point, except you are **not** using any -parameters. When the parameters are absent, CodeIgniter does not stop -the benchmark until right before the final 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. - -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:: - - {elapsed_time} - -.. note:: If you want to benchmark anything within your controller - functions you must set your own start/end points. - -Displaying Memory Consumption -============================= - -If your PHP installation is configured with --enable-memory-limit, you -can display the amount of memory consumed by the entire system using the -following code in one of your view file:: - - <?php echo $this->benchmark->memory_usage();?> - -.. note:: This function can only be used in your view files. The consumption - will reflect the total memory used by the entire app. - -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:: - - {memory_usage} - - -*************** -Class Reference -*************** - -.. php:class:: CI_Benchmark - - .. php:method:: mark($name) - - :param string $name: the name you wish to assign to your marker - :rtype: void - - Sets a benchmark marker. - - .. php:method:: elapsed_time([$point1 = ''[, $point2 = ''[, $decimals = 4]]]) - - :param string $point1: a particular marked point - :param string $point2: a particular marked point - :param int $decimals: number of decimal places for precision - :returns: Elapsed time - :rtype: string - - Calculates and returns the time difference between two marked points. - - If the first parameter is empty this function instead returns the - ``{elapsed_time}`` pseudo-variable. This permits the full system - execution time to be shown in a template. The output class will - swap the real value for this variable. - - - .. php:method:: memory_usage() - - :returns: Memory usage info - :rtype: string - - Simply returns the ``{memory_usage}`` marker. - - This permits it to be put it anywhere in a template without the memory - being calculated until the end. The :doc:`Output Class <output>` will - swap the real value for this variable.
\ No newline at end of file |