dotMemory의 새로운 기능

이 페이지에서는 dotMemory의 최신 업데이트와 변경 사항을 자세히 설명합니다.

dotMemory 다운로드

30일 무료 평가 이용 가능

사용자 인터페이스 2024.3

2024.3 업데이트에는 작지만 다양한 UX/UI 개선이 도입되었으며, 모든 운영 체제의 모든 dotMemory 버전에 통일된 모양과 느낌을 주는 디자인을 완성시켰습니다.

객체 인스턴스에 대한 Creation Stack Trace(생성 스택 추적) 뷰 2024.3

이전에 UI를 새롭게 디자인하는 과정에서 제거했던 Creation Stack Trace(생성 스택 추적) 뷰를 다시 도입했습니다. 이 뷰에는 객체를 생성시킨 함수 호출 스택이 표시되므로 메모리 문제의 근본 원인을 보다 쉽게 찾아낼 수 있습니다.

객체 세트에 대한 Back Traces(역추적)2024.3

객체 세트에 대한 <0>Back Traces(역추적) 뷰도 다시 구현했습니다. 이 뷰의 역전된 호출 트리는 특정 객체 세트를 생성한 함수에서 시작하여 아래에서 위로 이동하며 호출 체인을 보여줍니다.

고드름 차트로 도미네이터를 시각화하는 기능 2024.3

이제 도미네이터 트리를 고드름 차트로 표시하여 도미네이터와 보존된 객체의 메모리 사용량을 확인할 수 있습니다. 이 기능은 Windows, Linux 및 macOS용 dotMemory 독립 실행형 버전과 JetBrains Rider의 dotMemory 모두에서 사용할 수 있습니다.

이제 모든 OS에서 Call Tree(호출 트리)를 선버스트 차트로 제공 2024.3

2024.2 버전에 도입된 Call Tree(호출 트리)를 선버스트 차트로 시각화하는 기능을 이제 Windows, Linux 및 macOS용 dotMemory 독립 실행형 버전과 JetBrains Rider의 dotMemory 모두에서 사용할 수 있습니다.

개선된 인스턴스 검색 2024.2

Instances(인스턴스) 뷰에 새로운 필터 옵션이 추가되었습니다.

  • Search by string value(문자열 값으로 검색): 필터 필드에 문자열 값을 입력하면 dotMemory가 일치하는 문자열을 강조 표시합니다. 이를 통해 특정 문자열 인스턴스를 그 내용에 따라 쉽게 찾을 수 있습니다.
  • 문자열 값에 정규식 지원: 정규식을 사용하여 고급 검색을 실행할 수 있습니다. 예를 들어 ^nAsso.{5,}ID$nAssociatedObjectID.nAssociatedObjectID와 일치합니다.
  • 객체 주소로 검색: 이제 메모리 주소를 사용하여 객체 인스턴스를 검색할 수도 있습니다. 이는 특정 객체를 직접 추적할 때 유용합니다.

이러한 기능은 dotMemory의 독립 실행형 버전 및 JetBrains Rider 내의 dotMemory에서 사용할 수 있습니다.

Improvements in dotMemory for Linux and macOS 2024.2

dotMemory의 Linux 및 macOS 버전에도 이전에 Windows에서만 제공되던 기능이 추가되었습니다.

  • 자동 메모리 검사: 탐지된 메모리 문제를 자동으로 표시하는 Inspection(검사) 뷰가 Linux 및 macOS용 dotMemory에도 추가되었습니다.
  • 여러 작업 공간의 스냅샷 비교: 이제 서로 다른 프로파일링 세션의 스냅샷을 비교할 수 있습니다.

이러한 기능은 dotMemory의 독립 실행형 버전 및 JetBrains Rider 내의 dotMemory에서 사용할 수 있습니다.

Sunburst(선버스트) 차트로 Call Tree(호출 트리) 시각화 2024.2

Call Tree(호출 트리)Sunburst(선버스트) 차트로 표시할 수 있으며, 메모리를 가장 많이 할당하는 함수가 강조 표시됩니다. 이 기능은 dotMemory의 독립 실행형 버전(Linux 및 macOS)과 JetBrains Rider 내의 dotMemory(Windows, Linux 및 macOS)에서 사용할 수 있습니다.

MAUI 애플리케이션 지원

MAUI 애플리케이션 지원 2024.1

이제 MAUI 프레임워크를 기반으로 애플리케이션을 프로파일링할 수 있습니다.

현재 dotMemory는 Windows에서 .NET 7.0 이상을 대상으로 하는 WinUI 애플리케이션의 프로파일링을 지원합니다.

이 지원은 dotMemory 독립실행형과 Rider 및 ReSharper에 통합된 dotMemory에 제공됩니다.

macOS에 대한 지원 개선 2024.1

  • 이제 dotMemory의 독립형 버전을 사용하면 실행 파일 대신 애플리케이션 번들(.app)을 지정할 수 있습니다.
  • Rider의 dotMemory는 macOS 실행 구성을 프로파일링할 수 있으며 다음 대상 프레임워크가 지원됩니다. net7.0-macos, net8.0-macos
Linux 및 macOS용 dotMemory의 새로운 뷰

Linux 및 macOS용 dotMemory의 새로운 뷰 2024.1

Linux 및 macOS용 dotMemory 독립실행형 버전은 다음과 같은 기능을 제공하여 Windows 버전에 더 가까워졌습니다.

  • 객체 세트 분석을 위한 Similar Retention(유사한 보존)
  • 도미네이터 객체 분석을 위한 Sunburst(선버스트) 다이어그램

고정된 객체 힙 지원 2024.1

고정된 객체 힙에 있는 변경할 수 없는 객체에 대한 정보는 타임라인, Heap Fragmentation(힙 조각화) 다이어그램 및 Generations(생성) 뷰에 표시됩니다.

dotMemory Standalone on Linux and macOS 2023.3 Beta

이제 Linux 및 macOS 운영 체제에서 dotMemory의 독립 실행형 버전을 실행할 수 있습니다.

Linux에서 프로세스 덤프 분석 2023.3

이제 dotMemory를 사용하면 Linux에서 프로세스 덤프를 일반 스냅샷으로 가져오고 분석할 수 있습니다. dotMemory의 Linux 버전은 Linux OS에서 실행되는 프로세스에서 수집된 덤프만 가져올 수 있습니다.

JetBrains Rider의 스냅샷 분석 2023.2

2023.2 이전에는 메모리 할당 분석을 위해서만 Rider에서 dotMemory를 사용할 수 있었습니다. 2023.2에서는 dotMemory의 독립실행형 버전과 마찬가지로 Rider에서 메모리 스냅샷을 수집하고 이를 분석할 수 있습니다.

  • 스냅샷 분석은 Windows, Linux 및 macOS에서 사용할 수 있습니다.
  • Windows에서는 프로세스 덤프를 가져오고 분석할 수도 있습니다.
  • 일부 기능 및 뷰(예: 자동 스냅샷 검사 및 생성 스택 추적 보기)는 사용할 수 없습니다.

Windows ARM64 지원 2022.3

이제 Windows의 ARM64 CPU에서 dotMemory를 사용할 수 있습니다. 이는 dotMemory 독립실행형, Rider의 dotMemory, Visual Studio의 dotMemory 및 dotMemory 명령줄 도구의 모든 버전에 적용됩니다.

Linux ARM32 지원 2022.3

이제 Linux의 ARM32 CPU에서 dotMemory 명령줄 프로파일러를 실행할 수 있습니다. 지원되는 프레임워크는 .NET Core 3.1 및 .NET 5.0~7.0입니다.

JetBrains Rider의 dotMemory 2022.3

Windows뿐 아니라 Linux 및 macOS에서도 JetBrains Rider에 dotMemory를 사용할 수 있습니다. Run(실행) 위젯과 Run(실행) | Switch profiler configuration(프로파일러 구성 전환) 메뉴에서 두 가지 새로운 프로파일링 모드인 Memory (sampled allocations)(메모리(샘플 할당))Memory (full allocations)(메모리(전체 할당))를 사용할 수 있습니다. dotMemory의 도움말에서 차이점을 자세히 알아볼 수 있습니다.

Run(실행) 메뉴의 실행 프로세스에 프로파일러를 연결하고 실시간으로 Timeline Graph(타임라인 그래프)를 확인할 수 있습니다. dotMemory Standalone에서와 마찬가지로, Memory Allocations(메모리 할당) 뷰를 여는 간격을 선택하세요. 이 뷰에서 할당된 객체 및 특정 기간의 할당 호출 트리를 분석할 수 있습니다.

아쉽게도 이 버전에서는 아직 메모리 스냅샷을 수집할 수 없습니다.

dotMemory 명령줄 프로파일러의 개선 사항 2022.3

이제 명령줄 프로파일러에 --saving-mode 인수가 있어 dotMemory 작업 공간을 저장할 시기에 대한 조건을 설정할 수 있습니다.

JetBrains Rider의 dotMemory 2022.2

이제 JetBrains Rider에서 바로 dotMemory를 사용할 수 있습니다.

  • Run(실행) 위젯과 메인 메뉴의 Run(실행) | Switch profiler configurations(프로파일러 구성 전환)에서 두 가지 새로운 프로파일링 모드인 Memory (sampled allocations)(메모리(샘플 할당))Memory (full allocations)(메모리(전체 할당))를 이용할 수 있습니다. dotMemory의 Help(도움말)에서 차이점을 자세히 알아볼 수 있습니다.
  • Run(실행) 메뉴에서 실행 중인 프로세스에 프로파일러를 연결할 수 있습니다.
  • 간격을 선택하고 Memory Allocation(메모리 할당) 뷰를 열어 실시간으로 펼쳐지는 Timeline Graph(타임라인 그래프)를 확인하세요. dotMemory 독립 실행형에서와 마찬가지로 이 뷰에서 특정 기간의 분석을 자세히 살펴볼 수 있습니다.

dotMemory 플러그인은 스냅샷 수집을 허용하지 않으며 2022.2 릴리스에서는 Windows에서만 작동합니다.

musl 기반 Linux 배포 지원 2022.1

dotMemory 명령줄 도구가 이제 Alpine 버전 3.13~3.15를 지원합니다. 다음 CPU 및 프레임워크가 지원됩니다.

  • x64: .NET Core 3.1, .NET 5.0~6.0.
  • arm64: .NET 5.0~6.0.

프로파일링 API 개선 2022.1

프로파일링 API를 사용하여 스냅샷을 가져올 때 이제 DotMemory.GetSnapshot("snapshot name");을 사용하여 스냅샷 이름을 지정할 수 있습니다.

이름은 dotMemory Home(홈) | Snapshots(스냅샷) 페이지에 표시됩니다.

드래그앤드롭으로 애플리케이션에 연결 2022.1

이제 특수 아이콘을 애플리케이션 창으로 끌어다 놓기만 하면 이미 실행 중인 애플리케이션에 프로파일러를 연결할 수 있습니다.

명령줄 도구 개선 2022.1

스냅샷을 저장할 때 이제 dotMemory 명령줄 도구에 진행률이 표시됩니다.

유사한 보존 뷰의 성능 개선 2022.1

Similar Retention(유사한 보존) 뷰에서 이제 데이터가 훨씬 빠르게 처리됩니다.

Apple Silicon 프로세서 2021.3

이제 dotMemory 명령줄 도구가 Apple Silicon 프로세서가 탑재된 컴퓨터에서 작동합니다. 이제 dotMemory CLT를 사용하여 .NET 6 애플리케이션(네이티브 모드) 및 .NET 5 애플리케이션(Rosetta 2 모드)을 프로파일링할 수 있습니다.

성능 개선 사항 2021.3

도미네이터 트리(객체 보존 그래프)의 알고리즘을 완전히 재작업했습니다. 객체 세트에 수억 개의 객체가 포함되어 있어도 dotMemory가 지정된 뷰를 여는 데 몇 분밖에 걸리지 않습니다.

샘플링된 메모리 할당 데이터 2021.3

이제 dotMemory는 ETW 이벤트를 기반으로 샘플링된 메모리 할당 데이터를 가져올 수 있습니다. 할당 데이터를 수집하는 기존의 (통계적인) 방법과 비교할 때 샘플링 정확도는 떨어지지만 다음과 같은 많은 이점이 있습니다.

  • 샘플링된 할당 데이터는 성능 저하 없이 수집됩니다.
  • 이 데이터 수집은 항상 활성화되어 있으므로 명시적으로 활성화할 필요가 없습니다.
  • 이미 실행 중인 애플리케이션에 프로파일러를 연결할 때에도 샘플링된 할당 데이터가 수집됩니다.

이 기능은 Windows에서만 사용 가능합니다.

Subsystems(하위 시스템) 뷰 2021.3

이제 Subsystems(하위 시스템) 뷰를 사용하여 메모리 할당 데이터를 분석할 수 있습니다. 하위 시스템은 동일한 타입, 네임스페이스 또는 어셈블리에 속하는 모든 메서드를 그룹화합니다. 결과 뷰에는 하위 시스템에서 생성된 객체와 각 하위 시스템의 병합된 호출 트리가 표시됩니다.

메모리 할당 분석 업데이트 2021.2

이번 릴리스에서 메모리 할당의 분석 방식이 한층 개선되었습니다. 두 개의 새 탭이 Memory Allocation(메모리 할당) 뷰에 추가되었습니다.

  • Methods(메서드) 탭에서 메모리를 할당한 메서드의 일반 목록을 분석할 수 있습니다.
  • Call Tree(호출 트리) 탭에서 할당 호출 트리를 분석할 수 있습니다. 트리의 각 노드에는 호출된 메서드뿐 아니라 호출로 할당된 객체가 표시됩니다.

개선된 필터 2021.2

dotMemory 뷰 상단의 검색창이 더욱 유연하고 사용하기 쉽게 개선되었습니다.

  • 해당 필터는 검색 범위를 좁히는 추가 옵션을 제공합니다. #struct(값 타입만 검색), #c(타입만 검색), #m(메서드만 검색), #ns(네임스페이스만 검색).
  • 특정 컨텍스트에서 가능한 모든 필터에 대한 도움을 받을 수 있습니다.

객체 내보내기 개선 2021.2

이제 다음을 수행할 수 있습니다.

  • 객체 데이터 내보내기 시 순회 깊이 지정.
  • 한 개 이상의 타입을 선택하고 데이터를 단일 파일로 내보내기.
  • Instances(인스턴스), Outgoing References(송신 참조)Unreachable Objects(도달할 수 없는 객체) 뷰의 데이터 내보내기.

콘솔 프로파일러 업데이트 2021.2

이제 서비스 메시지를 사용하여 메모리 할당 데이터 수집을 활성화 및 비활성화할 수 있습니다.

클립보드에 스택 추적 복사하기 2021.2

ReSharper를 사용하면 dotMemory의 클립보드에 복사된 스택 추적을 Rider/Visual Studio에서 자동으로 열 수 있습니다.

새로운 홈 화면 2021.1

dotMemory 홈 화면을 완전히 새롭게 작업했습니다. 이제 새 프로파일링 세션을 구성 및 시작하고, 스냅샷으로 작업하고, 기타 기본적 작업을 수행하기가 훨씬 더 쉬워졌습니다.

Linux 덤프 지원

Linux 덤프 지원 2021.1

이제 gcore를 사용하여 Linux 시스템에서 수집된 .NET Core 애플리케이션의 덤프를 분석할 수 있습니다.

메모리 할당 분석 개선

메모리 할당 분석 개선 2021.1

이제 dotMemory를 사용하여 임의의 시간 간격으로 메모리 할당을 분석할 수 있습니다. 타임라인에서 간격을 선택하기만 하면 Memory Allocation(메모리 할당) 뷰에 이 간격에 할당된 객체와 이를 할당한 스택 추적이 표시됩니다.

dotMemory 다운로드

30일 무료 평가 이용 가능