Deep Inside .NET garbage collectors

  • Post author:
  • Post category:
  • Post comments:0 Comments
  • Post last modified:July 13, 2007

GC 모드 값에 따라 가비지 콜렉터의 개수가 달라진다고 했었다. 그러나 의문이 남았다. 한 프로그램에 애플리케이션 도메인이 여러 개 있을 때는 어떻게 될까? C++/CLI에서 Managed Thread와 Native Thread를 혼용해서 사용하면 어떻게 될까?

WinDbg를 사용해서 직접 확인해보았다.

AppDomain이 여러 개인 경우

애플리케이션 도메인이 아무리 많아도 GC 쓰레드의 개수는 GC 모드 값을 따른다. AppDomain이 완전히 분리된 주소 공간을 갖는다는 이야기 때문에, AppDomain마다 별도의 GC Heap을 받을지 모른다고 걱정했었다. 하지만 한 프로세스에 AppDomain이 올라간 경우에 논리적으로 주소 공간을 분리해줄 뿐, 실제론 같은 GC Heap을 쓰는 듯 하다.

Managed Thread와 Native Thread를 혼용해서 쓰는 경우

쓰레드의 종류나 개수에 상관 없이 GC 쓰레드의 개수는 GC 모드 값을 따른다. 당연한 이야기인가?

결론. 전부 예상했던 대로였다. 하지만 직접 눈으로 확인해보지 않으면, 나중에 큰 일이 발생할 수도 있었기 때문에 조사할만한 가치가 있었다.

Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
follow me
  • 문득, 한국전쟁 때 우리를 도와준 비백인이 적지 않은데 이런 언행을 일삼는 건 배은망덕하지 않나? 의리없고 배은망덕한 인간이 난 싫더라 https://t.co/iQvNMqnauQ
    10 hours ago
  • 첨언하자면 백오피스가 아닌 사람에게 노하우가 있는 상황도 경계해야 한다. 사업 확장이 안 된다
    20 hours ago
  • 1. 데이터를 쌓아서 잘 보여주는가 2. 데이터에 기반해서 내가 의사결정을 할 수 있는가. 달리 말해 데이터에 기반해 내 서비스를 개선하는 일련의 피드백 루프를 수행할 수 있는가 길게 이야기했는데 간단히… https://t.co/OhIRZflJqd
    20 hours ago
Buy me a coffeeBuy me a coffee
×
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
Latest Posts