1

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

我不认为普通函数和 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);
4

3 回答 3

1

我自己没有测量过它,但根据经验,我感觉普通函数比静态函数快,因为它们普通函数存储在父级下方,而不是嵌套。

但无论如何,这个答案的重点是分享这个链接: http: //phpperf.com/(我还不知道如何写评论)。但它为您提供了一些内置功能速度的示例。

于 2013-07-08T17:27:44.777 回答
0

自己测量!

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

请记住不要实现单例!它们是一种反模式。我不会在这里详细介绍。

于 2013-07-08T15:56:15.143 回答
-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]

然后比较。如果有的话,我预计不会有太大的不同。尽管我预计第三个示例的性能会稍差一些,但一切都可以忽略不计。这完全是关于代码的可维护性和用于进行未来增强的时间,而不是真正挤出肉眼无法检测到的非常边际的性能提升。

于 2013-07-08T15:57:02.163 回答