多次调用函数或使用循环调用它,速度更快


Calling a function multiple times or call it using loop, which is faster?

我需要多次调用函数getCount($stage)(比如 15,因为$stage可以有 0 到 14 的值)。哪种方法更快:

for ($i=0; $i<15; $i++)
{
  getCount($i);
}

getCount(0);
getCount(1);
.
.
.
getCount(14);

我正在处理的当前页面也有类似的情况。它使用第二种方法,缺乏可读性。我期待将其更改为第一种方法。在运行时方面有什么优点或缺点吗?哪种方法会更快?

我不会担心为此使用循环。您将获得使用 for 循环的两个主要好处。

  1. 您可以动态更改调用函数的次数,因为该次数不是硬编码的。
  2. 您可以获得更多可维护的代码,这些代码很容易识别其作用。

性能方面,当您使用语言结构(如 for 循环)时,性能影响最小。因此,我更喜欢更易于阅读和更易于维护的代码,而不是非常非常小的性能提升(如果客户端甚至注意到它)

问候。

理论上

第一种方法应该更慢,因为有一些添加的检查和变量。考虑到要确切地知道 php intepreter 内部发生了什么以及进行了什么样的优化是很困难的,所以这甚至可能不是真的,但这并不重要,因为......

实践上这是相同的,循环的性能影响是如此之小,以至于如果你不做某种极端高性能的计算工作(在php?!),这两种方法在速度方面是完全等效的。

它们都很相似。一个只是占用更多的代码行。