저는 비즈니스 업무를 수행하는 Windows 서비스가 있습니다. 나는 성능 문제를 발견하고이 같은 사진을 가지고 dotTrace와 함께 프로필 : GC Wait 88%Json.NET 및 GС에서 C# 서비스 성능 문제 대기
GC는 88 %의 시간을 기다리는 것이 이상한 것을, 그래서 몇 가지 작은 간격으로 닫힌 모양을 얻을 수 : Thread stats
이using (var response = await _httpClient.SendAsync(request, combinedTokenSource.Token))
{
response.EnsureSuccessStatusCode();
if (response.Content == null)
throw new InvalidOperationException("No HTTP response received.");
using (var responseStream = await response.Content.ReadAsStreamAsync())
{
using (var textReader = new JsonTextReader(new StreamReader(responseStream)))
{
var results = new JsonSerializer().Deserialize<ElasticResponse>(textReader);
return results;
}
}
}
사람이 비슷한 문제가 있었나요 :
나는 기간 bloking없는 동안, 스레드가 JSON.Net의 deserilization을 통해 객체 를 할당하고이 코드는 GC에 의해 차단 된 것을 발견? 또는 나는 무엇인가 놓치고 있냐?
그래서 당신이 실제 perfomance 문제가 있나요하거나 측정하기로 결정 워크 스테이션 GC에게 무엇입니까? – Evk
예,이 경우 성능이 낮습니다. – Mikel
".NET 메모리 할당"을 선택한 다음 "호출 스택"패널의 내용을 표시 할 수 있습니까? 추적 파일을 어딘가에 업로드 할 수 있다면 더 좋다. –