Description
We recently upgraded from .Net 5 - .Net 7 and straight away we could see the memory going up on all our servers and never releasing. Exactley the same as posted originally by @oferze #45098
I dont know why this post is closed it's not fixed in a version of VS as suggested (17.4.1.) I have 17.5.5. It's not related to visual studio it's .Net 7 for sure as we never had this problem on .net 5
I agree with @oferze https://github.com/oferze that this is a regression with .NET 7 since .NET 5 & 6 somehow does it better.
Our code hits the controller every 5 seconds but regardless of what our code does or how big the objects are that may or may not end up on the large heap or gen 1 - 2 the memory does not release on the worker process for w3wp.exe for a simple end point.
@oferze demonstrates this well with the code below but you will see the same even if you return an empty string and hit this endpoint continously.
Simply create an endpoint and constantly refresh (f5) once published or in debug mode and see the memory grow and not get released.
[HttpGet("[action]")]
public IActionResult GetMem(int testNumber)
{
var mem = Process.GetCurrentProcess().PagedMemorySize64;
return Ok($"Mem: {mem:N0}");
}