이 코드는 대기 시간을 줄이기 위해 동시에 데이터를 가져 오는 2 ~ 7 건의 요청을 전송합니다. 내 컴퓨터에서 코드를 실행하는 데 6 초가 걸렸습니다. Azure에 업로드했을 때 60 초가 걸렸습니다. Azure 버전의 2 개의 창을 열고 나란히 실행하면 120 초가 걸립니다. 나에게 그들이 원하는대로 동시에 실행되지 않거나 동시에 여러 호출이 서버에 병목 현상을 일으키고 있다고 생각됩니다. 누구든지 아이디어가 있습니까? 그들이 병렬 처리 수준을 선택하는 CPU 기반 추론을 사용하기 때문에Task.Parallel.For가 병렬로 실행되지 않는 것 같습니다.
List<string> strs = new List<string>();
Parallel.For(0, uriArray.Count(), index =>
{
using (var client = new HttpClient())
{
var response = client.GetAsync(uriArray[index]).Result;
if (response.IsSuccessStatusCode)
{
var responseContent = response.Content;
var responseString = responseContent.ReadAsStreamAsync().Result;
using (GZipStream zip = new GZipStream(responseString, CompressionMode.Decompress, true))
using (StreamReader unzip = new StreamReader(zip))
{
strs.Add(unzip.ReadToEnd());
}
}
}
});
시스템에 몇 개의 코어가 있습니까? – Shyju
@Shyju 내 컴퓨터에 8 개 있음 – Mike
Azure에서는 어떨까요? –