【发布时间】:2022-05-11 08:22:39
【问题描述】:
我正在使用默认项目测试 ASP Net Core 2.2:
Visual Studio > 文件 > 新建 > 项目 > ASP NET Core Web 应用程序 > 下一步 > 创建。 按界面上的IIS Express按钮,自动转到https://localhost:44356/api/values
编辑:重点是,我正在测试 ASP Net Core,以防人们暴力破解垃圾邮件。
我只修改了这个:
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
编辑:为此,我编辑了我的代码以进行合理的测试,产生最小的可重现示例
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<Post>> Get()
{
// Testing for brute force
return Enumerable.Range(0, 100).Select(x => "Example Value").ToList();
}
起始进程内存为 80 MB。
编辑:原来这个问题从 2 年前就已经存在,没有解决方案,并且有 真实生活示例体验, https://github.com/aspnet/AspNetCore/issues/1976
我很确定黄色箭头表示 GC 工作正常,但我的进程内存使用量并不是每个请求都下降。 我不确定这是否是 ASP Net Core 的功能或错误,我预计它会在请求后下降 / 每次用户获取 /values 时不会增加
编辑:我不希望人们危险地向我的应用程序发送垃圾邮件,并且由于内存泄漏而开始崩溃。如果这个解决方案还没有修复,我害怕为我的公司使用 Net Core。
为什么 ASP Net Core 2.2 不释放内存?
我试过在两台不同的笔记本电脑上测试,结果是一样的。
编辑:我的同事也有这个问题。
编辑:我试过用dot net core v2.1,结果是一样的。
我已经尝试过 GCCollect();结果是一样的。
旧图参考
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
-
设计? GC 收集的运行时通常会保留内存,除非内存不足
标签: c# asp.net-core asp.net-web-api memory-leaks