dotMemory는 Visual Studio에서 바로 실행하거나 JetBrains Rider 플러그인 또는 독립실행형 도구로 사용할 수 있는 .NET 메모리 프로파일러입니다.
dotMemory를 활용하면 지원되는 모든 버전의 .NET Framework, .NET Core, .NET, ASP.NET 웹 애플리케이션, IIS, IIS Express, Windows 서비스, Universal Windows Platform 애플리케이션 등에 따라 애플리케이션을 프로파일링할 수 있습니다. macOS 및 Linux에서 dotMemory는 JetBrains Rider의 일부로서 또는 명령줄 프로파일러로서만 사용할 수 있습니다.
dotMemory를 사용하면 작업 관리자 또는 Process Explorer에서 얻은 원본 Windows 메모리 덤프를 가져와서 일반 메모리 스냅샷으로서 분석할 수 있습니다. 이 작업으로 자동 검사, 점유율 다이어그램 및 기타 정교한 dotMemory 기능을 활용할 수 있습니다.
애플리케이션을 성공적으로 최적화하려면 애플리케이션 내 메모리 점유율을 반드시 파악해야 합니다. 이 뷰에는 도미네이터(메모리에서 다른 객체를 독점적으로 보유하고 있는 객체)의 계층 구조가 방사형 차트로 표시됩니다.
차트를 한 번 훑어보는 것만으로 애플리케이션에서 중요한 객체가 무엇인지 파악하고 가장 큰 규모의 구조도 평가할 수 있습니다. 도미네이터의 점유율이 높을수록 중심각이 큽니다.
특정 도미네이터의 점유 경로를 확인하려면 해당 원호를 클릭하세요. 도미네이터를 2번 클릭하면 차트가 확대되어 해당 도미네이터에 포함된 객체를 더 자세히 확인할 수 있습니다.
dotMemory는 JetBrains Rider와 통합되어 실시간 메모리 할당 추적, 특정 시간 간격의 할당 분석 등의 기능을 지원합니다. 또한 필요에 따라 Visual Studio에서 메모리 프로파일링 세션을 시작할 수도 있습니다.
dotMemory 객체 집합의 유형에서 Visual Studio의 유형 선언으로 이동할 수 있습니다.
특정 조건이 참인 경우에만 스냅샷을 찍고 싶을 때가 있을 수 있습니다. 이를 고려하여, dotMemory에서는 스냅샷 촬영 프로세스를 자동화하였습니다. 이 기능은 특히 애플리케이션의 메모리 소비가 크게 증가하거나 수동으로 스냅샷을 촬영하기 까다로울 경우 유용합니다. 간단히 특정 조건을 설정하면, 해당 조건이 충족될 때 스냅샷이 자동으로 수집됩니다.
애플리케이션에서 소비하는 메모리를 모니터링하고 스냅샷을 찍은 후 드롭하여 클릭 한 번으로 비교하세요.
다양한 뷰에서 힙에 있는 객체를 검사하세요. 객체 간 관계를 알고 싶으신가요? 객체가 다른 객체를 무슨 필드를 통해 참조하는지 궁금하세요? 이러한 객체를 생성하는 호출도 파악하고 싶으신가요? 이제 모두 간단히 해결됩니다. dotMemory는 이 모든 것을 파악할 수 있는 뷰를 제공합니다.
2개의 스냅샷 비교는 메모리 누수의 원인이 되는 객체를 찾아낼 수 있는 주요 방법입니다. 비교 뷰를 사용해 스냅샷 간에 얼마나 많은 객체가 생성되고 수집되었는지 확인하세요.
메모리 프로파일링은 전문가용이라고 널리 알려져 있지만, dotMemory의 독자적인 사용자 인터페이스는 진입 장벽을 크게 낮추고 메모리 프로파일링 작업을 간소화합니다. 메모리 문제의 실제 원인을 파악할 때까지 위에서 아래로, 객체 집합에서 특정 인스턴스로 간단히 이동하세요.
과도한 할당 및 가비지 수집은 메모리 관리에 상당한 오버헤드를 불러올 수 있습니다. 트래픽 뷰를 사용하면 애플리케이션에서 가장 집중적으로 생성/수집되는 객체 및 이러한 메모리 트래픽을 발생시키는 기능을 파악할 수 있습니다.
dotMemory는 문자열 중복, 희소 배열, 누수 이벤트 핸들러 또는 WPF 바인딩 등, 일반적 메모리 문제 유형의 스냅샷을 자동으로 검사합니다. 이러한 검사는 스냅샷을 분석할 때 무엇부터 시작할지 알 수 없는 경우 시작점으로 삼기에 좋습니다.
dotMemory에는 dotMemory.exe 명령줄 프로파일러가 포함되어 있습니다. 이 도구로 프로파일링을 자동화하여 프로파일링을 지속적 통합 빌드의 일부로 만들거나 간단히 일상적 프로파일링 작업의 속도를 높일 수 있습니다(예: 같은 애플리케이션을 정기적으로 프로파일링해야 하고, 매번 dotMemory 사용자 인터페이스를 시작하기를 원하지 않는 경우에 사용).
30일 무료 평가 이용 가능