2009-07-20 84 views
2

可能重复:
Performance of try-catch in php异常处理性能

在使用try - catch块,即使任何异常不抛出,不会影响代码的性能?

我想编写自己的异常处理程序,它从标准异常类扩展,想知道这种情况是否会降低多个调用页面的性能。

回答

4

答案是否定的,没有任何重要的意义。我想,在数千次调用的过程中,您可能会看到一些代码与try/catch和一些代码之间有几微秒(或更少)的差异,但由于try/catch是一种语言结构,因此您不会产生重大意义高架。

这与使用for循环或if/else相同。

真正的测试是对您的代码进行基准测试并亲自查看。 ;)

编辑:我应该澄清的是,实际的抛出和捕获异常可能会涉及一些开销,因为必须生成一个Exception对象等等。这与仅仅测量try/catch执行本身稍有不同。

0

我曾经使用过的一些人总是会强调代码运行时缓慢的异常是如何缓慢的,并且我应该尽量减少使用,直到我证明它是IDE让它慢而不是异常本身。这是视觉工作室2003.

当然,你应该时刻注意什么时候不要抛出异常。如果你正在使用它作为正常流量,并且有一百万个异常被抛出来影响控制流程,那么你很可能会有一个糟糕的设计。