.NET:完全なWebリクエストをシミュレートして測定する方法は?

StackOverflow https://stackoverflow.com/questions/2005668

  •  18-09-2019
  •  | 
  •  

質問

WebRequestでリクエストを測定しようとしています。

しかし、Firebugで測定してから、大幅に小さな結果が得られています。

画像やCSSなどの一部のコンテンツが含まれていないためだと思います。

完全なWebリクエストを測定する方法はありますか?

私のコード:

        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;
        }

    }
役に立ちましたか?

解決

それがあなたのためのオプションかどうかはわかりませんが、あなたは ウェブブラウザ 発射する前にページのすべての要素を要求するため、制御します DocumentCompleted イベント。

他のヒント

コードは、コードが完了するのに時間がかかる時間のみを測定します。コードは、すべてのバイトがクライアントに到達するのを待機せず、コードよりもかなり長くなります。

測定は何とどこで最適かを期待する場所に依存します。サーバーが光負荷になっているときにクライアントでのエクスペリエンスを改善したい場合、FireBug(またはFiddler)は測定するのに適した場所になります。サーバーが重い負荷がかかっている場合、サーバーのパフォーマンスを改善しない場合、コードプロファイラーは必要なツールのようなものになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top