php获取目标函数执行时间示例
发布:smiling 来源: PHP粉丝网 添加日期:2020-10-12 15:13:50 浏览: 评论:0
这篇文章主要介绍了php获取目标函数执行时间示例,需要的朋友可以参考下,写了一个类用来测试目标函数的执行时间。以下是类的定义代码:
- <?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() 函数中的判断占用了一部分时间。
Tags: php获取函数执行时间
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)