PHP中空函数的性能

PHP中空函数的性能,php,performance,polymorphism,Php,Performance,Polymorphism,调用一个空PHP函数需要多少“成本”?CMS的主要目的是在其生命周期的不同时间点触发包含的模块事件,以处理安全性、访问权限、后处理、计时、http等问题。由于可能有十几个模块每次调用几十次,因此每次页面加载的总调用将达到数百次,甚至可能达到数千次 初始模块基本上类似于以下代码,将由对象替换,以处理触发的任何触发器事件并处理传递的数据: function trigger ($trigger_name, $data=false) { return false; } 这最终会成为一个问题吗?

调用一个空PHP函数需要多少“成本”?CMS的主要目的是在其生命周期的不同时间点触发包含的模块事件,以处理安全性、访问权限、后处理、计时、http等问题。由于可能有十几个模块每次调用几十次,因此每次页面加载的总调用将达到数百次,甚至可能达到数千次

初始模块基本上类似于以下代码,将由对象替换,以处理触发的任何触发器事件并处理传递的数据:

function trigger ($trigger_name, $data=false)
{
    return false;
}
这最终会成为一个问题吗?我是否应该在一个模块系统中工作,预先注册触发器以减少无意义函数调用的数量?

我在这个链接中发现:

带有一个参数和一个空函数体的函数调用所需的时间与执行7-8$localvar++操作所需的时间大致相同。当然,类似的方法调用大约是15$localvar++操作

更新:2004年7月11日:上述测试是在大约3年前的PHP4.0.4上进行的。我再次测试了这个
在PHP4.3.3中,调用函数现在需要大约20$localvar++操作,调用方法需要大约30$localvar++操作。这可能是因为$localvar++现在运行得更快,或者函数运行得更慢。

对于PHP缺少的事件支持,我会选择一些更具事件性质的东西。它看起来与您在预注册时的想法类似

如果您不能这样做或不愿意这样做,那么一堆空函数调用不会影响性能(尽管可能有数千个)。我会做一些基本的分析,看看服务页面的时间花在哪里。如果显示空函数需要花费大量的时间,那么我会对此感到担心

我无法想象页面如此复杂以至于需要那么多触发器,而没有其他更严重的瓶颈。也就是说,如果页面有如此多的事情发生,那么添加的触发器就变得更加不重要了