我遇到了HttpClient异步请求的性能问题。 我想对不同的IP发出多个请求,并将JSON API内容作为字符串。
当我使用单个实例时,在~3个请求后性能下降。 当我使用处理时,可以接受一个,但不能用于多个请求。
这是我的代码和结果:
private static readonly HttpClient ClientPublic = new HttpClient();
public async Task<string> GetURL(string url)
{
var watch = System.Diagnostics.Stopwatch.StartNew();
string URLString = await ClientPublic.GetStringAsync(url).ConfigureAwait(false);
watch.Stop();
addtolist(watch.ElapsedMilliseconds.ToString(), url);
return URLString;
}
单个URL(ms)的结果:205 155 640 640 590 651 681 590
public async Task<string> GetURL2(string url)
{
var watch = System.Diagnostics.Stopwatch.StartNew();
using (var ClientPublic2 = new HttpClient())
{
using (var result = await ClientPublic2.GetAsync(url))
{
string URLString = await result.Content.ReadAsStringAsync();
watch.Stop();
addtolist(watch.ElapsedMilliseconds.ToString(), url);
}
}
return URLString;
}
单个URL(ms)的结果:208 686 198 190 141 271 131 119
当我通常调用多个(10)URL时,一个实例方法会产生更好的结果,但总有2-3个请求具有相当高的响应时间。
我通过浏览器插件检查了请求的网址,并且所有响应都是&lt; 200毫秒。 我可以找到什么来诊断这个问题吗?