php获取目标函数执行时间示例_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() 函数中的判断占用了一部分时间。

时间: 2024-08-02 05:03:04

php获取目标函数执行时间示例_php实例的相关文章

php获取目标函数执行时间示例

 这篇文章主要介绍了php获取目标函数执行时间示例,需要的朋友可以参考下 写了一个类用来测试目标函数的执行时间.以下是类的定义代码:    代码如下: <?php /**  * class EfficiencyTester  * 效率测试器,测试函数的运行时间  * @version 1.0 2013.04.13  * @author Kross  */ class EfficiencyTester {         /**      * var $testTimes      * 测试的次数

php计算当前程序执行时间示例_php实例

复制代码 代码如下: <?$pagestartime=microtime();?><!--网页内容 start-->网页内容......<!--网页内容 end--><?$pageendtime = microtime();$starttime = explode(" ",$pagestartime);$endtime = explode(" ",$pageendtime);$totaltime = $endtime[0]-

php版微信自动获取收货地址api用法示例_php实例

本文实例讲述了php版微信自动获取收货地址api用法.分享给大家供大家参考,具体如下: 微信公众平台现在是越来越强大了,我们可以通过各种api接口来与平台对接获取对应的数据了,下面来看一个由php实现的微信自动获取收货地址api程序,具体如下. 关于接口的说明我就不介绍了,在官方可以看到下面只看处理程序. public function get_address_api() { $APPID=C('APPID'); $SCRETID=C('SCRETID'); if (!isset($_GET['

PHP获取网站中各文章的第一张图片的代码示例_php实例

<?php $temp=mt_rand(1,4); $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; $content = $article->Content; //文章内容 preg_match_all($pattern,$content,$matchContent); if(isset($matchContent[1][0]

curl不使用文件存取cookie php使用curl获取cookie示例_php实例

复制代码 代码如下: /*-----保存COOKIE-----*/$url = 'www.xxx.com'; //url地址$post = "id=user&pwd=123456"; //POST数据$ch = curl_init($url); //初始化curl_setopt($ch,CURLOPT_HEADER,1); //将头文件的信息作为数据流输出curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //返回获取的输出文本流curl_se

php利用新浪接口查询ip获取地理位置示例_php实例

复制代码 代码如下: <?php function getIPLoc_sina($queryIP){    $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;    $ch = curl_init($url);     curl_setopt($ch,CURLOPT_ENCODING ,'utf8');     curl_setopt($ch, CURLOPT_TIMEOU

php获取文件内容最后一行示例_php实例

复制代码 代码如下: $rs = 'README.md';$fp = fopen($rs, 'r'); fseek($fp,-1,SEEK_END); $s = '';while(($c = fgetc($fp)) !== false) {  if($c == "\n" && $s) break;  $s = $c . $s;  fseek($fp, -2, SEEK_CUR);}fclose($fp);echo $s;exit;

php获取淘宝分类id示例_php实例

复制代码 代码如下: $url = "http://list.taobao.com/browse/cat-0.htm";  $html = file_get_contents($url);  echo '<meta charset="UTF-8">';  $pattern='/\<a\s+href\=\"http\:\/\/list\.taobao\.com\/itemlist\/.*?\&cat\=([0-9]+)\"

php获取文件夹路径内的图片以及分页显示示例_php实例

复制代码 代码如下: <div style="width: 90%; margin: 10px auto; border: 1px solid #ccc; text-align: center">    <?php    $page=isset($_GET['page'])?$_GET['page']:0;//从零开始    $imgnums = 10;    //每页显示的图片数    $path="upload";   //图片保存的目录