나는 병목을 식별하기 위해 EQATEC과 같은 코드 프로파일 러를 사용할뿐만 아니라 코드에 더 많은 단위 테스트를 작성하기 시작했다. 단위 테스트에서 성능을 모니터링하는 올바른 방법이 있는지 궁금합니다.단위 테스트로 성능을 가장 잘 모니터하려면 어떻게해야합니까?
명백히 코드 프로파일 러가 최적화에 가장 적합 할 것이지만, 필자가 가장 찾고있는 것은 필자의 가장 최근 변경 사항이 필자의 성능을 우발적으로 죽이지 않았는지 확인하는 방법입니다 (중복 함수 등을 호출하여) 비록 그것이 어떤 논리도 깨지 않았더라도.
내 첫 번째 생각은 내 방법 (예 : insert
또는 일부 정렬)을 여러 번 실행하여 대개 틱 수를 산출하는 것입니다. 그런 다음 메서드 호출을 반복 할 단위 테스트를 작성한 다음 Assert(elapsedTicks < magicNumberOfTicks)
을 작성합니다. 이것은 너무 자의적인 것처럼 보이지만이 상황에서 다른 개발자가 사용한 것이 궁금합니다.
스트레스 테스트 /로드 테스트 소프트웨어를 더 많이 찾고 있다고 생각합니다. –
요점은 내가 이미 내 논리가 깨지지 않았는지 확인하기 위해 단위 테스트를 사용하고 있으며, 내가 말했듯이 내가 부지불식간에 내가 가진 재귀 함수에 두 번의 추가 호출을했다면 (가급적이면 VS에서) 빨리 알고 싶습니다. 어떤 것도 망가 뜨리지는 않지만 400 % 더 느리게 만듭니다. – dlras2
단위 테스트를 사용하여 작업 성능을 측정하는 것이 유용 할 수 있지만 결과는 소금으로 처리해야합니다. 예를 들어 UT에서는 GC 오버 헤드와 같은 항목이 표시되지 않을 수 있습니다. 이것은 네이티브 코드에 더 많이 적용될 수 있지만 CPU 캐시의 효과는 현실을 반영하지 않을 수 있습니다. – seand