PHP中try-catch的性能

2023-11-26

在 php 5 中使用 try-catch 语句时需要考虑哪些性能影响?

我之前在网上读过一些关于这个主题的旧的、看似相互矛盾的信息。我目前使用的许多框架都是在 php 4 上创建的,缺乏 php 5 的许多优点。因此,我自己在 php 中使用 try-catch 方面没有太多经验。


需要考虑的一件事是,不引发异常的 try 块的成本与实际引发和捕获异常的成本是不同的问题。

如果仅在失败情况下抛出异常,那么您几乎肯定不关心性能,因为每次执行程序时不会失败很多次。如果你在一个紧密的循环中失败了(又名:用头撞砖墙),你的应用程序可能会遇到比速度慢更严重的问题。因此,不必担心抛出异常的成本,除非您以某种方式被迫将它们用于常规控制流。

有人发布了一个关于分析抛出异常的代码的答案。我自己从未测试过它,但我自信地预测,这将比仅进出 try 块而不抛出任何内容带来更大的性能影响。

另一件需要考虑的事情是,当您嵌套调用很多层时,在顶部进行一次 try...catch 甚至比在每次调用时检查返回值和传播错误更快。

与这种情况相反,您发现将每个调用都包装在自己的 try...catch 块中,您的代码会变慢。而且更丑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP中try-catch的性能 的相关文章