CodeIgniter 3代码基准测试实现方法及benchmark类获取指引
CodeIgniter 3 基准测试(Benchmark)类使用指南
一、类库的获取与加载
CodeIgniter 3的Benchmark类是框架核心集成类库,无需手动下载或添加,可直接通过两种方式调用:
- 在控制器、模型、视图中,直接使用全局实例
$this->benchmark - 在非CI原生类文件中,通过
get_instance()->benchmark获取类实例
二、检测代码段执行时间的具体实现
1. 标记代码段的起始与结束
在需要检测的代码前后分别添加自定义标记:
// 标记起始点,自定义唯一名称 $this->benchmark->mark('test_logic_start'); // -------------------------- // 这里是你要检测的目标代码段 for ($i = 0; $i < 10000; $i++) { // 模拟业务逻辑代码 } // -------------------------- // 标记结束点,名称对应起始点(格式为[起始名]_end) $this->benchmark->mark('test_logic_end');
2. 输出执行时间
标记完成后,通过以下方式获取并展示精确耗时:
// 在控制器中输出时间 echo $this->benchmark->elapsed_time('test_logic_start', 'test_logic_end'); // 或直接在视图中渲染(无需手动echo) <?= $this->benchmark->elapsed_time('test_logic_start', 'test_logic_end') ?>
3. 全局请求耗时检测(额外实用功能)
如果需要查看整个请求从框架初始化到输出的总耗时,直接在视图中添加:
<?= $this->benchmark->elapsed_time() ?>
三、注意事项
- 标记名称必须成对存在,结束标记可采用
[起始标记]_end的命名规则,也可在elapsed_time方法中手动传入两个不同的标记名 - 支持同时标记多段代码,只要标记名称不重复即可
- 时间精度默认保留4位小数,可在
application/config/config.php中修改$config['benchmark_precision']调整精度
内容的提问来源于stack exchange,提问作者Houssem Chr
相关产品推荐
相关产品推荐

