2016-07-03 2 views
0

우리는 우리의 로깅, 데이터 액세스, 암호를 처리하는 내부 프레임 워크를 가지고 있습니다. 성능을 비교해보고 싶습니다. 즉, 로깅 기능을 다른 주류 시스템, 즉 nlog, log4net, serilog와 비교해보고 싶습니다. 분명히 필자는 기능적으로 모든 시스템이 파일이나 콘솔에 로깅하는 것처럼 시작한다고 생각합니다.BenchmarkDotNet을 사용하여 로깅 인프라를 벤치마킹하는 방법은 무엇입니까?

BenchmarkDotNet이 상황에서 적용 가능합니까? 필자가 읽은 예제와 논문의 대부분은 사용 빈도가 매우 낮은 루프에서 사용 시나리오를 보여 주었으며 디스크가 아닌 메모리와 CPU 같은 IO를 주로 사용합니다.

연습으로베이스 라인 기능을 사용하여 콘솔에 벤치 마크를 작성하기위한 xunit 테스트를 작성했지만 테스트가 완료되지 않아 프로세스가 종료되어 결국이 게시물로 안내됩니다.

내가 BenchmarkDotNet을 사용하고 있다면 그 방법이 내가 수행하려고하는 것과 더 많은 인라인을 가진 다른 테스트 방법이 있을까요?

, 감사합니다 스티븐

답변

3

BenchmarkDotNet가 CPU 바인딩 코드 microbenchmarking에 가장 적합합니다. IO 기반 코드에 영향을 미칠 수있는 많은 요소가 있으므로 마이크로 벤치마킹을 큰 접근 방식으로 간주하지 않습니다.

대신, 각 프레임 워크를 앱에 통합하고 가능한 한 현실적인 조건에서 성능을 측정하는 것이 좋습니다 ... "치명적인 오류"상태 또는 로깅이 푸밍 (pummeling)을 일으킬 가능성이있는 항목 포함 . 또한 "null 로거"를 사용하여 테스트를 수행하면 아무런 효과가 없으므로 (가능한 한 일찍 처리하지 않으므로) 일종의 기준선을 결정할 수 있습니다.

이렇게하면 이러한 로깅 프레임 워크가 특정 응용 프로그램에 대해 어떻게 작동하는지 알 수 있습니다.하지만 이것이 가장 중요한 사항입니다.

관련 문제