PHP 4/5 使用class、function和什么都不用直接执行效率对比

www.iuiuiu.com 2005年06月24日00:26 查看...次 作者:data  【
 今天看到这篇 How efficient is OOP in PHP? ,其中对 php 使用class、function和什么都不用直接执行的效率进行了对比,列出了数据和图表,但是其测试是在 2003 年进行的,当时的 php 版本还比较老,而且那会儿 php5 还没有发行版本吧,在我自己的机器下测试用了一下 php4 和 php5 的上述 3 种方式的大概情况。

代码还是用那个测试中的:
OOP (a.php) Function (b.php) 两者都不用 (c.php)
class test
{
    function one() {
      return 1;
    }
}

for ($i=0; $i<1000000; $i++)
{
    $testclass=new test();
    $cnt+=$testclass->one();
}
function one()
{
    return 1;
}

for ($i=0; $i<1000000; $i++)
{
    $cnt+=one();
}
for ($i=0; $i<1000000; $i++)
{
    $cnt+=1;
}

首先在 php 4.3.10 下测试,以下是执行时间列表:(单位:秒)
# OOP Function 两者都不用
1 4.777 1.678 1.008
2 4.883 1.672 1.040
3 4.749 1.746 1.011
4 4.946 1.728 1.020
5 4.764 1.768 1.007
6 4.734 1.740 1.014
7 4.765 1.719 1.028
8 4.973 1.680 1.011
9 4.732 1.835 1.014
10 4.799 1.753 1.011
平均值 4.8122 1.7319 1.0164

我的机器配置是 P4 1.60GHz with 512 RAM;webmasterstop那个测试的配置是双Xeon 2.0Ghz with 2GB RAM,我的机器还是差一些;不过从测试结果来看,我的结果和 2003 年那会儿差不多,或者还好一点,可以看出 php 从 2003 年到现在本身的效率方面还是提高了不少。

接着在 php 5.04 下测试,以下是执行时间列表:(单位:秒)
# OOP Function 两者都不用
1 4.207 1.995 1.219
2 4.465 1.982 1.158
3 4.554 1.909 1.200
4 4.058 1.918 1.157
5 4.143 1.917 1.184
6 4.037 1.928 1.165
7 4.125 1.976 1.154
8 4.056 2.021 1.168
9 4.216 1.905 1.193
10 4.154 2.041 1.157
平均值 4.2015 1.9592 1.1755

php5 下的测试结果和 php4 环境下的对比:使用 OOP 的效率由平均执行时间 4.8 秒变为 4.2 秒,效率有比较大的提高;使用 Function 和直接执行的情况变化不大,php5 环境下还稍微差了一点点。

总体来看,虽然基于 OOP 开发比较方便,有众多优点,但 OOP 方式的执行效率还是比 Function 或直接执行差一些,也不能忽视,找到开发和效率的平衡点是需要考虑的一个问题。在众多开源项目中,phpMyAdmin 目前好像还是一直是基于过程的,大部分都使用 Function,连模板(Template)也不用,php 代码直接和 HTML 直接混在一起,这样代码维护可能麻烦些,phpMyAdmin在开源项目中也算是特立独行吧。;)
责任编辑:easy

给文章打个分先...

平均分:0.1(14 次)

-5 -4 -3 -2 -1 0 1 2 3 4 5

发表我的见解...

  • 您的大名: 留空为匿名
  • 您的主页:
  • 您的邮箱: