什么是更快,正常的函数或OOP单例模式

时间:2013-07-08 15:51:17

标签: php function oop design-patterns singleton

当我开始编程时,我的动机就是得到结果,速度对我来说并不那么重要,但是到时候我才明白速度非常重要。

我不认为普通函数和OOP单例模式在性能方面存在很大差异,但无论如何我想知道哪一个更快。

哪个更快?

这:

my_prefix_fn_name($arg1, $arg2);
my_prefix_fn_name2($arg1, $arg2);

或者这个:

Class_Name::fn_name($arg1, $arg2);
Class_Name::fn_name2($arg1, $arg2);

或者这个:

$cname = 'Class_Name';
$cname::fn_name($arg1, $arg2);
$cname::fn_name2($arg1, $arg2);

3 个答案:

答案 0 :(得分:1)

我自己没有测量过,但根据经验我觉得正常函数比静态函数更快,因为正常函数存储在父元素下面,而不是嵌套元素。

但无论如何,这个答案的重点是分享这个链接:http://phpperf.com/(我还不知道如何写评论)。但它给出了一些内置函数速度的例子。

答案 1 :(得分:0)

自己测量一下!

请记住,无论你衡量什么,最有可能只会有所不同。执行速度并不是唯一重要的因素。代码的可读性更为重要,因为更改代码通常比执行代码的成本高出几个数量级。

请记住不要实施单身人士!他们是反模式。我不会在这里详细介绍。

答案 2 :(得分:-2)

您是否尝试对这些测试运行基准测试以确定示例1和示例2之间的毫秒甚至纳秒运行时间差异?

基本基准测试

[Get datetime for start timestamp]
    [For Loop, run 1000 times]
        [Run Function, example 1 or 2]
    [End For]
[Get datetime for end timestamp]

[Print time difference in milliseconds between end and start times]

然后比较。如果有的话,我不认为会有太大的不同。虽然我预计第三个例子的表现会略差但都可以忽略不计。这完全取决于您的代码的可维护性和未来增强所花费的时间,而不是真正挤出肉眼无法检测到的非常微小的性能提升。