C# HttpWebResponse映像流性能下降
我有以下代码C# HttpWebResponse映像流性能下降,c#,performance,httpwebresponse,C#,Performance,Httpwebresponse,我有以下代码 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Proxy = WebRequest.DefaultWebProxy; //or skipped request.UserAgent = "Mozilla"; request.Referer = "http://google.com; request.Accept = "image/png,image/*;q=0.8,*/*;q
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Proxy = WebRequest.DefaultWebProxy; //or skipped
request.UserAgent = "Mozilla";
request.Referer = "http://google.com;
request.Accept = "image/png,image/*;q=0.8,*/*;q=0.5";
request.Host = "google.com";
// request.KeepAlive = false;
request.Headers.Add(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.5");
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
request.CookieContainer = cookieContainer;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
Bitmap bmp = new Bitmap(Image.FromStream(stream));
return bmp;
}
}
它在多个线程中执行。每个线程使用上述代码运行单独的循环。我运行了简单的性能测试Stopwatch,并观察到3-5分钟后Image.fromStream比开始时花费的时间多10倍
我试图在请求对象中设置KeepAlive和代理设置。在app.config中还添加了以下内容:
<system.net>
<connectionManagement>
<add address="*" maxconnection="5000"/>
</connectionManagement>
<defaultProxy enabled="false">
<proxy/>
<bypasslist/>
<module/>
</defaultProxy>
</system.net>
不幸的是,随着时间的推移,我的性能仍在下降。我的性能工具dotTrace显示,大部分时间是花费Image.FromStream
知道bug在哪里吗?处理完位图后,是否会处理它?是的,在不同的地方。但这是可以处理的。