易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP封装类效率测试

今天刚学完mysqli,去我的IDC运营商那看了一下,发现他们的虚拟主机居然不支持,我又去其他几家看了看,有的支持有的不支持。
我就想自己写个类,让他去判断,能用mysqli就用mysqli,否则就用原始的mysql函数。不过问题马上就来了,自己写类会不会导致执行效率变低了呢?于是我就进行了如下测试。
这是用来计时的类:
/**
* 计算代码执行时间
* $counting : 当前的计时状态
* $startTime : 开始计时的时间
* $totalTime : 代码执行的用时
* getTime() : 取得当前时间(以微秒为单位)
* start() : 开始计时
* show() : 显示执行代码的用时
*
*/
class Counter
{
private $counting;
private $startTime;
private $totalTime;

function __construct(){
$this->start();
}

private function getTime(){
list($msec,$sec) = explode(' ',microtime());
return $sec+$msec;
}

function start(){
$this->counting = TRUE;
$this->startTime = $this->getTime();
}

function stop(){
$this->counting = FALSE;
$this->totalTime = ($this->getTime() - $this->startTime)*1000000;
}

function show(){
$this->counting == TRUE && $this->stop();
echo "<br>耗时:".$this->totalTime." 微秒<br>";
$this->start();
}
}
这是执行的代码1:
class Myobj
{
function myf($str){
preg_match('/456/',$str);
}
}
$obj = new Myobj();
$str = '123456789';
$counter = new Counter();
for($i=0;$i<10000;$i++){
$obj->myf($str);
}
$counter->show();
测试五次用的时间分别为:
15283
15861
15658
15663
16229
这是执行的代码2(直接调用函数,不用自己的类):
$str = '123456789';
$counter = new Counter();
for($i=0;$i<10000;$i++){
preg_match('/456/',$str);
}
$counter->show();
测试五次用的时间分别为:
9087
9501
9026
9413
9989
可见,直接调用函数比调用自己封装的函数快了5000微秒左右,乍一看,好像挺吓人的,可仔细一想,5000微秒==5毫秒==0.005秒,而且我整整调用了10000次,这么点差距,肯定没


相关文档:

PHP学习笔记

// 连接两个字符串
<?php
    $txt1 = "Hello";
    $txt2 = "PHP";
    echo $txt1." ".$txt2;
?>
// 取得字符串中的字符数
<?php
    $txt1 = "Abc";
    echo strlen($txt1);
......

在PHP5中使用DOM控制XML


PHP5中增强了XML

支持,使用DOM
扩展了XML操作的能耐。这些函数
作为 PHP5 核心的一部分,无需被安装
即可使用。
下面的例子简单的演示了DOM对XML的操
作,详细解释请看代码
中的注释
<?
/************************************************
**         & ......

GyPSii API PHP请求示例

根据GyPSii API提供的操作类和方法,发现请求会失败,返回的是一个bed request。原因其实很简单,但一直没有找到,最终原因是对方提供的host是错误的,没天理。
对方提供的host和uri:
host:http://dev3.gypsii.com/gypsii
uri:http://dev3.gypsii.com/gypsii/xmlservice.cgi
这个host就是错的,应该是:dev3.gypsii.co ......

编程小技巧 PHP获文件扩展名的三种方法

方法一:
<?php
function extend_1($file_name)
{
$retval="";
$pt=strrpos($file_name, ".");
if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt);
return ($retval);
}
?>
方法二:
function extend_2($file_name)
{
$extend = pathinfo($file_name);
$extend = strto ......

用PHP实现简单的反向最大匹配中文分词(代码)

类文件wordsplit.class.php:
<?php
/********************************************************************
* DirCMS中文分词类 beta 1.0
* ---------------------------
* begin : 2010-5-11 beta 1.0
* update : 2 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号