2010-01-05 2 views
4

WebRequest를 사용하여 요청을 측정하려고합니다..Net : 전체 웹 요청을 시뮬레이트하고 측정하는 방법은 무엇입니까?

그러나 FireBug로 측정 한 결과가 상당히 작아졌습니다.

이미지 및 CSS와 같은 일부 콘텐츠가 포함되어 있지 않기 때문에 생각합니다.

전체 웹 요청을 측정 할 수있는 방법이 있습니까?

내 코드 :

 public string GetPageHtmlTime(string strUrl) 
    { 
     WebRequest request = null; 
     WebResponse response = null; 
     HttpWebResponse httpCurrentWeResponse = null; 

     try 
     { 
      //making a request to the file. 
      request = WebRequest.Create(strUrl); 
      //set 5 seconds timeout for the request 
      request.Timeout = 5 * 1000; 

      //Stopwatch 
      Stopwatch sw = new Stopwatch(); 
      sw.Start(); 

      //get the server response 
      response = request.GetResponse(); 
      httpCurrentWeResponse = (HttpWebResponse)response; 
      sw.Stop(); 

      //if the http response return any type of failure 
      if (httpCurrentWeResponse.StatusCode != HttpStatusCode.OK || response == null) 
       return "Error: " + httpCurrentWeResponse.StatusCode; 

      response.Close(); 

      //Return time: 
      return "OK time=" + sw.ElapsedMilliseconds.ToString("0,0"); 

     } 
     catch (System.Exception ex) 
     { 
      return "Error: ex=" + ex.Message; 
     } 

    } 
+0

코드는 아마도 페이지를 검색하는 것일 뿐이며 코드에 포함 된 HTML을 렌더링하고 포함 된 이미지와 같은 모든 리소스를 해결하는 다음 단계를 수행하지 않습니다. 내 팁 대신 브라우저 컨트롤을 사용하여 조사하는 것입니다. –

+0

브라우저 컨트롤은 Win Forms에서만 사용할 수 있습니다. 코드로만 시뮬레이션 할 수있는 방법이 있습니까? 그렇다면 웹 애플리케이션의 일부가 될 수 있습니까? – SirMoreno

답변

1

옵션이 맞는지 잘 모르겠으나, DocumentCompleted 이벤트를 시작하기 전에 페이지의 모든 요소를 ​​요청하므로 WebBrowser 컨트롤을 사용할 수 있습니다.

0
귀하의 코드는이 코드보다 훨씬 더 오래 걸릴 것이다 클라이언트에 도달하는 코드는 모든 바이트 기다리지 않습니다 코드에 대한 완전한 걸리는 시간을 측정 할 수

.

어디서 측정이 최적화 될 것으로 예상되는지에 따라 달라집니다. 서버 부하가 적을 때 클라이언트 환경을 개선하려면 Firebug (또는 Fiddler)를 측정하는 것이 좋습니다. 부하가 적을 때 서버의 성능을 향상시키지 않으면 코드 프로파일 러가 필요한 도구가 될 것입니다.

관련 문제