循环函数或多个调用函数,什么更快?

时间:2010-06-24 11:24:17

标签: php loops

基本上我有一个数组,想为每个元素调用相同的函数。哪种方式更快?

foreach($elemeents as $element){
    callFunction($element);
}

OR

function callFunction($leements){
    foreach($elements as $element){
        //do something
    }
}

提前感谢,我只是一个初学者

6 个答案:

答案 0 :(得分:3)

函数内部的循环可能稍快一些,因为每个函数调用都有(轻微)成本。但是,它没有太大的区别。

这实际上是过早优化,the root of all evil

你应该把它写得很清楚,然后如果它太慢,找出它慢的地方并优化它。

答案 1 :(得分:0)

这种微观优化很可能并不重要。做任何事都会导致更清晰的代码。

如果您知道(知道,而不是猜测)这段特定代码会导致性能问题,那么第二种替代方案几乎肯定会稍快一些。

答案 2 :(得分:0)

它们本质上是相同的,任何时候执行差异都可以忽略不计。归结为偏好。

答案 3 :(得分:0)

我不认为两者之间会有太大差异,但从我记得的函数堆栈调用中,第一种方法应该花费更长的时间。

答案 4 :(得分:0)

在我所知道的每种语言中,使用循环更快,因为调用函数时涉及的操作(如将其添加到堆栈中)。

但是,在出现实际性能问题之前,您不应该考虑性能。从设计,代码清晰度和低维护工作的角度考虑。

答案 5 :(得分:0)

简而言之:第二个应该更快。

详细说明:调用函数时,函数参数,局部变量和返回地址被推送到内部堆栈,并在函数调用完成后弹出堆栈。这意味着您的第一个变体将导致数组中每个值的这些堆栈操作,而第二个变体只会导致这些堆栈操作一次。

相关问题