Tao*_*Gil 8 c# memory-management .net-core asp.net-core-2.1
我在 Windows 中运行的 ASP .NET Core 2.1 应用程序遇到问题,该应用程序增加了内存消耗,直到最终崩溃并需要终止进程.NET Core Host
。我怀疑原因可能是每小时在后台运行一次的同步任务,并且我已确认禁用它可以解决问题。
我一直在使用 VisualStudio 2019 诊断工具分析此同步任务,并且发现了一个我不理解的行为:
正如你所看到的,我拍摄了 3 张快照:
在快照表中,我看到了一个对我来说似乎合乎逻辑的行为:堆大小在任务 (2) 期间显着增长,并且在退出作用域 (3) 时几乎减小到初始大小 (1)。然而,“进程内存”图表显示了一个不同的故事:内存消耗增加了,但它永远不会下降。我已经在发布模式下启动了应用程序dotnet run
,并且在查看进程使用的内存时看到了相同的行为.NET Core Host
。
我有两个问题:
备注:我使用一个简单的 .NET Core 控制台应用程序(2.1 和 2.2)重现了相同的行为,没有依赖项,因此它没有链接到 ASP 部分或任何其他库:
internal class Program
{
private static void Main()
{
new Whatever().AllocateSomeStrings();
// Snapshot3
Console.ReadKey();
}
}
public class Whatever
{
public void AllocateSomeStrings()
{
// Snapshot1
List<string> numbers = Enumerable.Range(0, 50000).Select(n => n.ToString()).ToList();
// Snapshot2
}
}
Run Code Online (Sandbox Code Playgroud)
回答我自己的问题:
归档时间: |
|
查看次数: |
4496 次 |
最近记录: |