2010-04-06 5 views
2

Java 예외를 발생 시키거나 (또는 ​​Throwable의 네이티브 fillInStackTrace()를 호출하는 것) log4j로 파일을 기록하는 데 드는 비용 (파일에서 생산 하드 드라이브) ... 로깅 비용 대비 예외 생성 비용

예외가 발생하는 경우, 자신을 묻기는 종종 내가) 고부하 환경에서

감사를 작동 (... 크게 필요하지 않은 경우에도이를 기록하는 것이 가치가 않습니다

답변

4

귀하의 jee6 태그에서 귀하가 구체적으로 자바의 예외에 대해 이야기하고 있다고 가정합니다.

로깅이 성능 문제이므로 많은 예외가있는 경우 예외 사용을 재고해야합니다.

예외적 인 상황에서는 예외를 사용해야합니다. 로깅이 성능 문제가되는 빈번한 작업을 수행하는 경우에는 예외적 인 상황이 아닐 수도 있습니다.

특정 질문에 대답하려면 : 로깅이 몇 배 더 느려질 것입니다. 로그 된 예외가 필요하지 않다는 것을 알고 있다면 로깅하지 않음으로써 응용 프로그램의 성능을 향상시킬 수 있어야합니다.

+0

그건 분명하지 않습니다. 몇 가지 상황이 있습니다. (최소한 C++에서는 예외가 가장 우아한 흐름 제어 메커니즘입니다.) – EFraim

+0

@Efraim : 파이썬 예외에서도 훨씬 더 허용됩니다. 예를 들어, 루프에서 빠져 나오려면 StopIteration을 발생시켜야합니다. 그러나 나는이 경우 OP가 자바 관련 답변을 찾고 있다고 생각한다. 내 대답을 다시 말해 줄게. –

+0

사실 나는 매달 10 000 000 명의 순 방문자가있는 웹 사이트에서 dev env에서 생산품 버그를 발견/재현 할 수 없도록 관리하는 사람입니다. 나는 모든 것이 디자인과 예외 처리에 대해 항상 괜찮은 것은 아니지만 단지 그것을 처리해야한다는 것을 알고 있으며, 모든 것을 리펙토링 할 수는 없다. 로깅 전략을 조정하기 위해 올리는 것과 비교하여 예외를 기록하는 것이 대략적인 비례 비율이라는 것을 알고 싶습니다. –