Visual Studio의 메모리 사용량 프로파일링 도구에서 .NET 코드를 프로파일링할 때 루트 대한 핫 경로는 메모리 사용 문제를 일으키는 힙에 유지되는 개체를 식별하는 데 도움이 될 수 있습니다. 메모리 사용 컨텍스트에서 핫 경로는 잠재적인 메모리 문제의 원인인 루트 개체를 가리키는 프로파일러에 의해 식별되는 참조 체인입니다.
개체의 포괄 크기(개체를 활성 상태로 유지하여 힙에 유지되는 총 메모리 양)를 계산할 때 강력한 연결 힙 그래프를 트리로 줄이는 것이 도움이 되는 경우가 많습니다. 그래프와 달리 트리의 노드에는 임의로 많은 자식이 있지만 한 부모만 있습니다. Rather than consider every possible path to root for an object, choosing the most likely path to root using various heuristics is typically sufficient to find the reference chain that, if removed, will make the object eligible for garbage collection. 이러한 추론 중 일부에는 루트에 대한 가장 짧은 경로, 특정 루트 형식 및 사용자 코드 경로의 우선 순위를 지정하는 것이 포함됩니다. 다양한 이유로 이 전략은 항상 가장 흥미롭거나 가장 오래 지속되는 보존 체인을 찾지는 못하지만 메모리 사용량 조사에서 유용한 시작점을 제공하는 경우가 많습니다.
메모리 사용 도구의 루트 트리에 대한 경로에서 불꽃 아이콘이 있는 경로()를 루트의 핫 경로라고 합니다.
예시
Use the Show hot paths only option to filter the view in the Paths to Root pane.
이 예제에서는 궁극적으로 AttachToProcess.Dialog
의해 루팅되는 바인딩을 통해 WPF 컨트롤(AutomationPeer
)이 유출됩니다. 필터링된 보기에서 보존 경로는 분명합니다. 루트에 대한 직접 경로만 표시됩니다.
옵션을 사용하지 않도록 설정하면 수백 개의 바인딩이 있으며 대부분의 확장 경로는 해당 주기의 막다른 길로 이어진다는 것이 분명해집니다. 시각적 표시기가 없으면 수천 개의 잠재적 보존 경로를 정렬하여 누출의 후보 이유를 찾는 것이 지루합니다.
참고:
Visual Studio 메모리 사용량 도구에 대한 자세한 내용은