簡體   English   中英

如何提高HTTPS請求上HttpWebResponse的性能?

[英]How do I increase the performance of HttpWebResponse on HTTPS Requests?

我正在構建一個高度依賴於網頁加載速度的應用程序。

在C#上使用HttpWebResponse無法獲得任何良好的結果。 使用Chrome和IE等互聯網瀏覽器可獲得更好的結果

這是我收集的統計信息:

HttpWebResponse(C#)= 17秒/ 20個請求

Chrome上的Javascript / iFrame = 9秒/ 20個請求

IE上的Javascript / iFrame = 11秒/ 20個請求

問題#1我有什么辦法可以優化我的代碼以獲得更好的性能?

問題2:我可以單擊“開始”按鈕兩次,並打開兩個連接,以便與瀏覽器性能保持一致。 這很好用,但是我發送請求的網站有限制。 如果我在另一個請求完成之前發送了一個新請求,它將阻止我的連接10分鍾。 有什么辦法可以防止這種情況嗎?

我的主題:

void DomainThreadNamecheapStart()
{
    while (stop == false)
    {
        foreach (string FromDomainList in DomainList.Lines)
        {
            if (FromDomainList.Length > 1)
            {
                // I removed my api parameters from the string
                string namecheapapi = "https://api.namecheap.com/foo" + FromDomainList + "bar";

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(namecheapapi);
                request.Proxy = null;
                request.ServicePoint.Expect100Continue = false;

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader sr = new StreamReader(response.GetResponseStream());

                status.Text = FromDomainList + "\n" + sr.ReadToEnd();

                sr.Close();
            }
        }
    }
}

我的按鈕:

private void button2_Click(object sender, EventArgs e)
{
    stop = false;
    Thread DomainThread = new Thread(new ThreadStart(DomainThreadNamecheapStart));
    DomainThread.Start();
}

我的老問題: 如何提高HttpWebResponse的性能?

每次按下按鈕時,您正在創建一個線程。 創建線程非常昂貴,並且需要花費時間。 嘗試使用現有線程池中的線程(嘗試QueueUserWorkItem ),看看是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM