在PHP中try-catch的性能

在PHP 5中使用try-catch语句时,要考虑什么样的性能影响?

以前,我已经在网上阅读了一些有关该主题的古老的,看似矛盾的信息。我目前必须使用的许多框架都是在php 4上创建的,并且缺少php

5的许多优点。因此,我在使用try-catchs与php方面经验不足。

回答:

要考虑的一件事是,没有引发异常的try块的开销与实际引发和捕获异常的开销是一个不同的问题。

如果仅在失败情况下引发异常,则几乎可以肯定您不在乎性能,因为在每次执行程序时都不会失败很多次。如果您的应用程序无法正常运行(又称:撞墙撞头),那么应用程序可能会遇到比慢的问题更严重的问题。因此,除非您因某种原因被迫将其用于常规控制流,否则不必担心引发异常的代价。

有人发布了一个答案,谈论引发异常的性能分析代码。我从来没有亲自测试过它,但是我自信地预测,这将带来比不插入任何尝试块进出try块更大的性能损失。

要考虑的另一件事是,在嵌套调用的深度很深的地方,在顶部单独进行一次try … catch甚至比检查返回值并传播每次调用的错误要快得多。

相反,在这种情况下,您发现将每个调用都包装在其自己的try … catch块中,您的代码将变慢。和丑陋的。

以上是 在PHP中try-catch的性能 的全部内容, 来源链接: utcz.com/qa/426887.html

回到顶部