내가 최근 다양한 스칼라 로깅 도서관에서 찾아 봤는데 대, 그 중 대부분 그들의 로깅 기능을 구현성능 통화 가치에 의해 호출에 의해 이름
def debug(s: => String)
따라서 디버그 로깅을 해제 한 경우 명령문을 실행하지 않습니다. 그러나, 나는 그냥 특별히 스칼라 로깅 라이브러리의 많은, Logula는 사용하지 않습니다 달리
그 혜택 중 하나로 상태 logula 건너 온 패스별로 이름 의미 (예를 들어, F => A)
- 는 스칼라 컴파일러는 각 로깅 문에 대한 일회성 폐쇄 개체를 만들 필요가 없습니다 : 그 진술을 로깅을위한 하는 두 가지를 의미한다. 이것은 쓰레기 양을 줄이기 위해 수거 압력.
실은 저에게 완전히 합당한 것입니다. 그래서 내 질문은 거기에 어떤 실제 성능 벤치 마크/데이터가 두 가지 접근법을 비교 무엇입니까? 이상적으로 살아있는 프로젝트와 인위적인 벤치 마크의 무언가? 빠른
'개인적으로, 이러한 종류의 제 1 원리 이해는 특정 응용 프로그램의 사례 연구보다 훨씬 가치가 있다고 생각합니다. 여기서 원칙에 동의하는 동안 현실은 당신과 완전히 다른 짐승이 될 수 있습니다. 앞질러 하다. 내가 대신 벤치 마크의 실제 사례를 찾고 있어요 왜 사람이 한 방향으로 빠르게 만 번을 보이게 벤치 마크를 쓸 수 있기 때문,이다. 내 호기심 때문이죠. 솔직히, 어떤 응용 프로그램이 병목 현상을 실제로 로깅하고 있습니까? – Falmarri
@Falmarri는 - 당신이 예에서 당신이 경우 이유를 _especially_ 예상보다 다를 수 있습니다. 이것이 내가 기본적인 절충점을 설명한 이유입니다. 로깅은 대부분의 응용 프로그램에서 병목 현상이되어서는 안된다는 것에 동의합니다. –
@Falmarri 음 ... 모든 것을 측정합니까? 대기열 크기, 처리량 및 응답 시간을 포함하여 애플리케이션의 모든 단계를 측정하여 맹세 한 사람들이 있습니다.해당 경로로 이동하면 로깅을 총 시간에 추가하지 않아도됩니다. 사실, 비동기 적이기를 원합니다. –