代码之家  ›  专栏  ›  技术社区  ›  Meep3D

PHP中空函数的性能

  •  2
  • Meep3D  · 技术社区  · 17 年前

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

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

    function trigger ($trigger_name, $data=false)
    {
        return false;
    }
    

    这最终会成为一个问题吗?我应该在一个预先注册触发器的模块系统中工作,以减少无意义函数调用的数量吗?

    2 回复  |  直到 17 年前
        1
  •  2
  •   Haim Evgi    17 年前

    我在这个链接中发现:

    http://phplens.com/lens/php-book/optimizing-debugging-php.php

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

        2
  •  2
  •   soulmerge    17 年前

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

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

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