2013-09-30 3 views
0

피들러에서 서비스 호출 응답 시간을 측정하는 방법을 찾고 있습니다 (요청 작성, XML 직렬화, 전송, 응답 받기, 직렬화 해제) 그것). 내가 갖는피들러 및 C# 응용 프로그램에서 WCF 서비스 호출 응답 시간 측정

var elapsed = (oSession.Timers.ClientDoneResponse - Session.Timers.ClientDoneRequest).TotalMilliseconds; 

결과 약 100 % 다르며, 피들러의 값이 작은 (반대 등 그 기대 놀라 울 정도로 두 배 : 문서는 ClientDoneRequest와 ClientDoneResponse 타이머의 차이를 이용한 제안

var start = DateTime.Now; 
// client is auto-generated C# SoapHttpClientProtocol proxy for WCF service 
var response = client.GetWebMethod(); 
var finish = DateTime.Now; 
var elapsed = (finish - start).TotalMilliseconds; 

:이처럼 요청을 전달하기 위해 약간의 오버 헤드를 가져야하는 프록시).
더 이상 ClientDoneResponse - Client * 을 시작하는 것 같습니다. * 요청은 여기 있지만이 타이머 (ClientStartRequest 및 ClientDoneRequest)의 값은 모두 내 경우에 완전히 같습니다. 어떤 아이디어를 피들에서 적어도 거의 닫는 숫자를 얻는 방법? 미리 감사드립니다.
편집
시도한 ClientBeginRequest, 전혀 작동하지 않습니다.

답변

1

코드에서 Windows 시계 해상도 (15.7ms)로 제한되는 DateTime.Now을 사용하고 있습니다. 정확도를 높이려면 대신 Stopwatch 클래스를 사용해야합니다.

피들러의 타이머로 측정하려는 것에 대해 충분히 이해하지 못합니다. ClientDoneResponse - ClientBeginRequest은 클라이언트가 첫 번째 TCP/IP 패킷을 Fiddler로 보내는 사이의 시간과 Fiddler가 최종 TCP/IP 패킷을 클라이언트에 보내는 시간을 측정합니다.

+0

정밀도에는 아무런 문제가 없습니다 (차이는 약 150-200ms이며, 클럭 문제는 아닙니다). 피들러에서 측정하려고하는 것은 첫 번째 코드에서와 같은 값입니다. 클라이언트 시작 요청간에 소요되는 시간이며 전체 응답을 얻습니다. – Jaded