[C#] 좋은 .NET 프로파일 러 란 무엇입니까?

.net 프로그램으로 작업 할 때 어떤 프로파일 러를 사용했으며 특히 권장하는 것은 무엇입니까?



답변

내가 사용하고 JetBrains의 dotTrace레드 게이트 ANTS을 광범위하게. 기능과 가격이 상당히 비슷합니다. 둘 다 유용한 성능 프로파일 링과 매우 기본적인 메모리 프로파일 링을 제공합니다.

dotTrace는 Resharper와 통합되어 IDE에서 한 번의 클릭으로 단위 테스트의 성능을 프로파일 링 할 수있어 매우 편리합니다. 그러나 dotTrace는 종종 가짜 결과를내는 것처럼 보입니다 (예 : 방법을 실행하는 데 몇 년이 걸린다고 말함)

ANTS가 프로파일 링 결과를 제시하는 방식을 선호합니다. 소스 코드를 보여주고 각 줄의 왼쪽에 얼마나 오래 걸 렸는지 알려줍니다. dotTrace는 트리 뷰만 있습니다.

EQATEC 프로파일 러 는 매우 기본적이고 EQATEC 프로파일 러에서 실행할 수있는 특수 계측 버전의 어셈블리를 컴파일해야합니다. 그러나 무료입니다.

전반적으로 성능 프로파일 링을 위해 ANTS를 선호하지만 Resharper를 사용하면 dotTrace의 통합이 킬러 기능이며 사용 편의성에서 ANTS를 능가합니다.

무료 Microsoft CLR 프로파일 러 ( .Net framework 2.0 / .Net Framework 4.0 )는 .NET 메모리 프로파일 링에 필요한 모든 것입니다.

2011 년 업데이트 :

사이텍 메모리 프로파일 러는 매우 기본적인 UI하지만 dotTrace와 개미가 부족한 관리되지 않는 메모리에 대한 몇 가지 정보를 포함하여 유용한 정보를 많이 가지고 – 당신은 유용 당신은 COM의 상호 운용성을하고 있다면 찾을 수 있습니다,하지만 난 COM하게 어떠한 프로파일을 찾을 아직 메모리 문제를 쉽게 진단 할 수 있습니다. 일반적으로 문제가 발생합니다 windbg.exe.

ANTS 프로파일 러는 지난 몇 년 동안 비약적으로 발전했으며 메모리 프로파일 러에는 실제로 유용한 기능이 몇 가지 있습니다. 둘 다 라이센스를 가질만큼 운이 좋지만 성능과 메모리 모두에 대해 하나의 .Net 프로파일 러를 구입하려는 경우 ANTS로 만드십시오.


답변

다른 사람들은 성능 프로파일 링을 다루었지만 메모리 프로파일 링과 관련하여
현재 Scitech .NET Memory Profiler 3.1과 ANTS Memory Profiler 5.1 (2009 년 9 월 현재 버전)을 모두 평가하고 있습니다. 나는 일년 또는 2 년 전에 JetBrains을 시도했지만 ANTS (메모리 프로파일 링)만큼 좋지 않았으므로 이번에는 신경 쓰지 않았습니다. 웹 사이트를 읽을 때 다른 두 사이트와 동일한 메모리 프로파일 링 기능 이없는 것처럼 보입니다 .

ANTS와 Scitech 메모리 프로파일 러에는 다른 기능에는없는 기능이 있으므로 사용자 환경 설정에 따라 달라집니다. 일반적으로 Scitech 정보는 더 자세한 정보를 제공하는 반면 ANTS 정보는 누출되는 물체를 식별하는 데 실제로는 믿을 수 없습니다. 전반적으로, 가능한 누출을 식별하는 데 너무 빠르기 때문에 ANTS를 선호합니다.

다음은 제 경험의 주요 장단점입니다.

ANTS 및 Scitech .NET 메모리 프로파일 러의 공통 기능

  • 실시간 분석 기능
  • 그들의 웹 사이트에서 훌륭한 방법 비디오
  • 사용하기 쉬운
  • 합리적인 성능 (프로파일 러를 부착하지 않은 것보다 느리지 만 실망하지는 않습니다)
  • 새는 개체의 인스턴스 표시
  • 기본적으로 그들은 둘 다 일을 꽤 잘합니다

개미

  • 한 번의 클릭으로 필터를 통해 일반적인 누수를 찾을 수 있습니다 . 이벤트 처리기 만 사용하여 유지 한 개체, 폐기되었지만 여전히 살아있는 개체 및 폐기 된 개체의 참조를 통해서만 살아있는 개체. 이것은 아마도 ANTS의 킬러 기능 일 것입니다. 누수를 찾는 것이 엄청나게 빠릅니다. 내 경험상, 대부분의 누출은 이벤트 핸들러가 연결 해제되지 않아서 발생하며 ANTS는 이러한 객체로 바로 연결됩니다. 대박.
  • 객체 유지 그래프. Scitech에서도 동일한 정보를 사용할 수 있지만 ANTS에서는 해석하기가 훨씬 쉽습니다.
  • 개체 자체의 크기 외에 자식이 포함 된 크기를 표시합니다 (그러나 불행히도 인스턴스가 전체 클래스 목록에서 선택되지 않은 경우에만).
  • Visual Studio와의 통합 향상 (그래프를 마우스 오른쪽 버튼으로 클릭하여 파일로 이동)

Scitech .NET 메모리 프로파일 러

  • 객체가 할당되었을 때 스택 추적을 표시합니다. 이것은 많은 다른 장소에 할당 된 객체에 정말 유용합니다. ANTS를 사용하면 누출 된 개체가 생성 된 위치를 정확하게 결정하기가 어렵습니다.
  • 폐기되지 않은 일회용 개체의 수를 나타냅니다. 누출을 나타내는 것은 아니지만 가비지 콜렉션이 빨라져이 문제점을 해결하고 애플리케이션 성능을 개선 할 수있는 기회를 식별합니다.
  • 보다 자세한 필터링 옵션 (여러 열을 독립적으로 필터링 할 수 있음).
  • 작성된 총 오브젝트 (가비지 수집 된 오브젝트 포함)에 대한 정보를 제공합니다. ANTS에는 ‘실시간’객체 통계 만 표시됩니다. 이를 통해 전반적인 애플리케이션 성능을보다 쉽게 ​​분석하고 조정할 수 있습니다 (예 : 누수가 아닌 객체를 불필요하게 생성하는 위치 식별).

요약하자면, ANTS가 누출을 더 빨리 찾는 데 도움이되는 반면 Scitech는 살펴볼 대상 (예 : 생성시 스택 추적)을 파악한 후 전체 애플리케이션 메모리 성능 및 개별 객체에 대해 조금 더 자세한 정보를 제공합니다. 처분되지 않은 일회용 물체의 스택 추적 및 추적이 ANTS에 추가되면 다른 것을 사용할 필요가 없습니다.


답변

최근에 EQATEC Profiler http://www.eqatec.com/tools/profiler를 발견했습니다 . 대부분의 .NET 버전과 여러 플랫폼에서 작동합니다. 상업적으로도 사용하기 쉽고 일부는 무료입니다.


답변

[ 전체 공개 ]

여기에 나열된 다른 .NET 메모리 프로파일 러만큼 완전한 기능을 제공하지는 않지만 시장에 JustTrace 라는 새로운 항목이 있습니다 . Telerik에 의해 만들어졌으며 주요 목표는 모든 유형의 앱 (웹 / 실버 라이트 / 데스크톱)에 대해보다 쉽고 빠르게 추적 / 프로파일 링을 수행하는 것입니다.

다른 도구를 사용하여 프로파일 링 및 최적화를 위협하거나 느리게 발견 한 경우 JustTrace살펴볼 가치가 있습니다.


답변

현존 하는 프리웨어 프로파일 러 인 nProf를 잊지 마십시오 .


답변

내가 찾은 dotTrace 프로파일 러를 하여 JetBrains의 자신의 ASP.NET 모드가 품질 .NET과위한 우수한 프로파일 링 도구가 될 수 있습니다.


답변

ANTS 프로필러 . 나는 많이 사용하지는 않았지만 실제로 ANTS에 대한 불만은 없습니다. 시각화가 정말 도움이됩니다.