directory search
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
characters

CodeIgniter有一个始终处于活动状态的Benchmarking类,可以计算任意两个标记点之间的时间差。

注意

该类由系统自动初始化,因此不需要手动执行。

另外,基准总是在框架被调用的时候开始,并且在将最终视图发送到浏览器之前由输出类结束,从而能够显示整个系统执行的非常准确的时间。

  • 使用基准类

    • 分析您的基准点

    • 显示总执行时间

    • 显示内存消耗

  • 类参考

使用基准类

Benchmark类可以在您的控制器,视图或模型中使用。使用过程如下:

  1. 标出一个起点

  2. 标记一个终点

  3. 运行“经过时间”功能查看结果

以下是使用实际代码的示例:

$this->benchmark->mark('code_start');// Some code happens here
$this->benchmark->mark('code_end');
echo $this->benchmark->elapsed_time('code_start', 'code_end');

注意

单词“code_start”和“code_end”是任意的。它们只是用来设置两个标记的单词。您可以使用任何您想要的单词,并且可以设置多组标记。考虑这个例子:

$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');

分析您的基准点

如果您希望基准数据可用于Profiler,则必须成对设置所有标记点,并且每个标记点名称必须以_start和_end结尾。必须以相同的方式命名每一对点。例:

$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');

请阅读Profiler页面以获取更多信息。

显示总执行时间

如果您希望显示从CodeIgniter开始到最终输出发送到浏览器时的总运行时间,只需将其放置在其中一个视图模板中即可:

<?php echo $this->benchmark->elapsed_time();?>

您会注意到,除了使用任何参数之外,它与上述示例中用于计算两点之间的时间相同的函数。当参数不存在时,CodeIgniter不会停止基准测试,直到最终输出发送到浏览器之前。使用函数调用的地方并不重要,定时器将继续运行直到最后。

在视图文件中显示已用时间的另一种方法是使用此伪变量,如果您不想使用纯PHP:

{elapsed_time}

注意

如果您想在控制器功能中对任何内容进行基准测试,您必须设置您自己的开始/结束点。

显示内存消耗

如果您的PHP安装配置了-enable-memory-limit,则可以在您的一个视图文件中使用以下代码显示整个系统所消耗的内存量:

<?php echo $this->benchmark->memory_usage();?>

注意

此功能只能用于您的视图文件。消耗将反映整个应用程序使用的总内存。

在视图文件中显示内存使用情况的另一种方法是使用此伪变量,如果您不想使用纯PHP:

{memory_usage}

类参考

class CI_Benchmarkmark($name)

参数:

$ name(字符串) - 你想分配给你的标记的名字

返回类型:

空虚

  • $ name字符串) - 你想分配给你的标记的名字

返回类型:void
设置基准标记。

elapsed_time([$point1 = ''[, $point2 = ''[, $decimals = 4]]])

参数:

$ point1(字符串) - 特定的标记点$ point2(字符串) - 特定的标记点$ decimals(int) - 精度的小数位数

返回:

经过的时间

返回类型:

  • $ point1字符串) - 一个特定的标记点

  • $ point2字符串) - 一个特定的标记点

  • $ decimalsint) - 精度的小数位数

返回:已用时间
返回类型:字符串
计算并返回两个标记点之间的时间差。

如果第一个参数为空,则此函数会返回{elapsed_time}伪变量。这允许完整的系统执行时间显示在模板中。输出类将交换此变量的实际值。

memory_usage()

返回:

内存使用信息

返回类型:

Previous article: Next article: