gpt4 book ai didi

c# - Json.NET和GC等待的C#服务性能问题

转载 作者:行者123 更新时间:2023-12-03 12:54:14 28 4
gpt4 key购买 nike

我有一个Windows服务,可以执行一些业务工作。我使用dotTrace对其进行了分析,以发现性能问题,并具有如下所示的图片:
GC Wait 88%

GC Wait占用88%的时间似乎很奇怪,所以我以较小的间隔仔细查看并得到:
Thread stats

我发现在不中断期间,线程分配了对象
通过JSON.Net反序列化以及GC阻止的以下代码:

    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;
}
}
}

有人有类似的问题吗?还是我错过了什么?

最佳答案

最终,我发现我的应用程序未使用“后台服务器垃圾收集”(Microsoft表示它是.net 4.5中的默认值-gc description)。所以我添加到配置:

   <runtime>  
<gcServer enabled="true"/>
</runtime>

并且将GC等待时间减少到8.5%,结果我获得了5倍的性能提升。

关于c# - Json.NET和GC等待的C#服务性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47981343/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com