C# 强制垃圾收集.net core 3.0 web应用程序

C# 强制垃圾收集.net core 3.0 web应用程序,c#,.net,asp.net-core,C#,.net,Asp.net Core,我们有.net core 3.0 web应用程序,托管在Azure应用程序服务上。当内存利用率达到应用程序计划的上限时,我们面临一个问题 创建一个作业,当内存使用率达到总内存使用率的80-90%时,该作业将监控资源使用情况并强制垃圾收集,这是一个好主意吗?也许最好在应用程序中找到内存泄漏的原因?简短的回答是“不,这不是一个好主意”。答案越长,请描述代码。有时,显式调用GC.Collect是一个好主意,但它们相对较少。在托管运行时中进行手动垃圾收集绝对不是一个好主意*除非你确切地知道自己在做什么以

我们有.net core 3.0 web应用程序,托管在Azure应用程序服务上。当内存利用率达到应用程序计划的上限时,我们面临一个问题


创建一个作业,当内存使用率达到总内存使用率的80-90%时,该作业将监控资源使用情况并强制垃圾收集,这是一个好主意吗?

也许最好在应用程序中找到内存泄漏的原因?简短的回答是“不,这不是一个好主意”。答案越长,请描述代码。有时,显式调用
GC.Collect
是一个好主意,但它们相对较少。在托管运行时中进行手动垃圾收集绝对不是一个好主意*除非你确切地知道自己在做什么以及为什么要这样做,否则你不需要问这个问题。我唯一能推荐的是,看看哪些部分使用了过多的内存,并尝试改进代码以减少使用。如果这不起作用的话,除了支付具有更多内存的应用程序计划之外,真的没有其他选择了。我没有发现显式内存泄漏对代码进行分析,我们正在尝试使用最佳实践(使用块、瞬态生命周期对象等)。很可能我们的系统过载了,最好的选择就是增加内存计划。我的建议是以某种方式作弊,我想知道是否可以使用显式GC调用。另外,我刚刚读到,clr在系统内存水平较低时运行GC,所以我的想法真的没有用。谢谢大家的帮助