小编Dhi*_*chi的帖子

每次请求都会增加 ASP.NET Core 内存,而 GC 不会释放它

在我们的一项 ASP.NET Core 服务中,我们注意到每次请求后内存都在增加。它在 2 天内达到约 2GB。

我试图调查这个问题,我发现这个问题(可能)是垃圾收集器没有被触发。

为了使调查更容易,我尝试使用一个简单的 Web API 应用程序(Dotnet Core 2.1 版,在调试和发布/自包含和 IIS Express 中从 Visual Studio 模板创建)来了解情况

这个全新的应用程序有同样的问题。每个请求的内存都会增加,并且永远不会被释放,如下图所示。

在此处输入图片说明

在系统内存不足的情况下,GC 会被触发,但内存永远不会下降。这是正常的吗?

因为这很奇怪,所以我在 Framework 4.6 上用一个简单的 ASP.NET 做了同样的测试。内存被释放

这很奇怪,不能接受。谁能向我解释一下 ASP.NET Core 内存发生了什么?

编辑:

根据要求,这是我的代码,一个从 Visual Studio 生成的非常基本的 ASP.NET Core:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the …
Run Code Online (Sandbox Code Playgroud)

c# garbage-collection memory-leaks asp.net-core

10
推荐指数
1
解决办法
2202
查看次数