2009-07-20 4 views
2

가능한 중복 :
Performance of try-catch in php예외 처리 성능

try 사용하는 동안 - 예외가 발생되지 않은 경우에도, catch 블록, 그것은 코드의 성능에 영향을 미치는가?

표준 예외 클래스에서 확장 된 자체적 인 예외 처리기를 코딩하려는 경우이 상황으로 인해 여러 호출에서 페이지의 성능이 저하되는지 궁금합니다.

답변

4

대답은 '중요하지 않습니다'입니다. 수천 개의 호출 과정에서 try/catch 코드와 일부 코드 사이에 수십 마이크로 초 (또는 그 이하)의 차이가있을 수 있지만 try/catch는 언어 구조이므로 아무런 문제가 발생하지 않을 것입니다. 간접비.

for 루프 나 if/else를 사용하는 것과 같습니다.

진정한 테스트는 코드를 벤치마킹하여 직접 확인하는 것입니다. ;)

편집 : Exception 객체가 생성되어야하기 때문에 Exception을 실제 throw 및 catch하는 데 약간의 오버 헤드가 발생할 수 있음을 분명히해야합니다. 이것은 try/catch 실행 자체를 측정하는 것과는 약간 다릅니다.

0

내가 사용했던 사람들 중 일부는 느린 예외가 코드를 실행하게하고 사용을 최소화해야한다는 것을 강조했다. IDE가 느리고 예외가 아니라는 것을 보여줄 때까지. 이것은 Visual Studio 2003입니다.

물론 예외를 throw하지 않을 때는 항상주의해야합니다. 정상 흐름으로 사용하고 백만 가지 예외가 제어 흐름에 영향을 미치기 위해 던져진다면 어쨌든 나쁜 디자인을 가질 가능성이 큽니다.