CI源码分析-Benchmark(性能测试)

性能测试。。其实说简单点就是个计时器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class CI_Benchmark {
// 时间点数组
public $marker = array();
/**
* 标记一个时间点
*
* 其实。。。就是在上面那个数组里面加一个标记,值是当前时间
*/
public function mark($name)
{
$this->marker[$name] = microtime(TRUE);
}
// --------------------------------------------------------------------
/**
* 计算时间间隔。。或者,,返回一个标记名字
*/
public function elapsed_time($point1 = '', $point2 = '', $decimals = 4)
{
// 如果第一个参数是空的,那就返回一个标记名字
if ($point1 === '')
return '{elapsed_time}';
// 如果第一个标记不存在。。。那还算啥。。返回空吧
if ( ! isset($this->marker[$point1]))
return '';
// 如果第二个标记不存在。。用当前时间算
if ( ! isset($this->marker[$point2]))
$this->marker[$point2] = microtime(TRUE);

// 返回时间间隔,后面的decimals是小数后面跟几个小数。默认为4
return number_format($this->marker[$point2] - $this->marker[$point1], $decimals);
}
// 仅仅返回一个标记名字
public function memory_usage()
{
return '{memory_usage}';
}
}