Blazor server 메모리 누수 문제 없으신가요??

기존 솔루션을 blazor server 로 전환 하려고 개발중에 있습니다.
그런데 브라우저 새로고침을 할때마다 비주얼 스튜디오 보여주는 메모리가 계속 증가하는 것입니다.
내가 뭘 잘못했나 싶어서… 비주얼스튜디오에서 기본 템플릿으로 다시 프로젝트를 생성하고 모두가 아실만한 이 화면에서 새로고침을 다시 해보았습니다.

여전히 새로고침할때마다 메모리가 올라가네요…
비주얼 스튜디오 이슈 인가 싶어서 해당 프로젝트를 빌드하고 dot memory로 확인해보는데

저렇게 상승하는 부분이 새로고침 하는 부분이고…
혹시나 메모리가 내려갈까 싶어서 기다리고 있는 부분도 보이네요…

새로고침 뿐 아니라 navbar에서 페이지를 이동할때도 똑같이 메모리 증가가 있습니다.

단서 :

  1. 비주얼스튜디오에서 lunch 할때는 새로고침 할때마다 메모리 1~2메가씩 증가
  2. 빌드하고 standalone으로 돌릴때는 0.2~0.3 메가씩 증가.
  3. Heap generation 0 부분이 계속 증가 함.
  4. ForceGC를 하는 순간 Heap generation 0 메모리가 Unmanaged memory 옮겨가는 듯함.


새 기본 프로젝트에서 부터 이런 현상이 나타나는거면 크리티컬 한 이슈라고 보여지는데요… 이에대해 아무런 언급이 없는거 같아서 궁금해서 글을 남깁니다.

GC 가 발생하지 않아서 그렇게 보이는걸로 확인 됩니다

내부적으로 GC 호출 하지 않았을때는

image
처럼 계속 상승 하는데

@code{
    static private int count = 0;

    protected override void OnInitialized()
    {
        base.OnInitialized();
        count++;
        if (count % 100 == 0)
            GC.Collect();
    }
}

를 넣어서 했을땐

image
로 나오네요.

어짜피 GC는 언제가 호출 되니까 큰 문제 없는거 아닐까요?

2 Likes

저도 상당히 고민했던 부분인데 일정 수준 올라가면 GC가 자동으로 동작해서 그런지 더이상 올라가지 않더라구요… 그 일정 수준이 좀 높아서 그렇지

2 Likes

닷넷 마이그레이션 후 메모리사용량 증가 문제 - :interrobang: 프로그래밍 언어 Q&A / C# Q&A - 닷넷데브 (dotnetdev.kr)

저랑 비슷한 사례같아용