写了一个类用来测试目标函数的执行时间。以下是类的定义代码:
复制代码 代码如下:
<?php
/**
* class EfficiencyTester
* 效率测试器,测试函数的运行时间
* @version 1.0 2013.04.13
* @author Kross
*/
class EfficiencyTester {
/**
* var $testTimes
* 测试的次数
*/
private $testTimes = 1000;
/**
* function getTime()
* 根据时间模式,获取时间戳
* @param $timeModel 时间模式,默认:微秒
* @return int 时间戳
*/
private function getTime($timeModel = 'MS') {
if ($timeModel == 'MS') {
return microtime();
} else if ($timeModel == 'S') {
return time();
} else {
return microtime();
}
}
/**
* function testOnce()
* 测试目标函数一次,返回运行时间
* @param $functionName 目标函数名
* @param $timeModel 时间模式,默认:微秒
* @return double 目标函数运行一次的时间(很随机)
*/
public function testOnce($functionName, $timeModel = 'MS') {
$startMicroTime = $this->getTime($timeModel);
$functionName();
$endMicroTime = $this->getTime($timeModel);
$costMicroTime = $endMicroTime - $startMicroTime;
return $costMicroTime;
}
/**
* function test()
* 测试目标函数多次,返回运行时间(平均值)
* @param $functionName 目标函数名
* @param $timeModel 时间模式,默认:微秒
* @return double 目标函数运行的时间
*/
public function test($functionName, $timeModel = 'MS') {
$totalMicroTimes = 0;
for ($i = 1; $i <= $this->testTimes; $i++) {
$totalMicroTimes += $this->testOnce($functionName);
}
return $totalMicroTimes / $this->testTimes;
}
}
?>
以下是类的测试代码:
复制代码 代码如下:
<?php
require_once('../class/EfficiencyTester.class.php');
$e = new EfficiencyTester();
echo $e->test('rand');
?>
一开始我是直接使用 microtime() 获取时间的,后来考虑到如果想获得单位是秒的运行时间,这样写就不够多态了,然后我就写了一个getTime() 的函数来获取不同单位的时间戳,不过这样,貌似目标函数的运行时间变长了,可能是因为 getTime() 函数中的判断占用了一部分时间。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 华少翌.2005-华少翌【中唱艺能】【WAV+CUE】
- 群星《十二女声Ⅱ》[WAV/CUE/分轨][527MB]
- 大自然音乐系列《漫步在山裡》[WAV/CUE/分轨][502.8MB]
- 大自然音乐系列《星光夜语》[WAV/CUE/分轨][453.3MB]
- 史依弘《史依弘交响乐京剧演唱专辑HQ》头版限量编号[WAV+CUE]
- 曼丽2020《女人三十风继续吹》HQCD[WAV+CUE]
- 曼丽2021《女人三十2雾之恋》HQCD[WAV+CUE]
- 隔壁老樊.2019-我曾【好听音乐】【FLAC分轨】
- 高林生.1993-牵挂你的人是我【白天鹅】【WAV+CUE】
- 洪卓立.2012-找个懂我的女孩(国专)【英皇娱乐】【WAV+CUE】
- 曼丽2022《女人三十3晚秋》HQCD[WAV+CUE]
- 曼丽2018《女人三十4冬天》HQCD[WAV+CUE]
- 柏菲-《好歌30年壹》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 大自然音乐系列《水舞》[WAV/CUE/分轨][424.3MB]
- 大自然音乐系列《星光夜语》[WAV/CUE/分轨][453.3MB]