.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 메모리 프로파일 러의 공통 기능
개미
Scitech .NET 메모리 프로파일 러
요약하자면, ANTS가 누출을 더 빨리 찾는 데 도움이되는 반면 Scitech는 살펴볼 대상 (예 : 생성시 스택 추적)을 파악한 후 전체 애플리케이션 메모리 성능 및 개별 객체에 대해 조금 더 자세한 정보를 제공합니다. 처분되지 않은 일회용 물체의 스택 추적 및 추적이 ANTS에 추가되면 다른 것을 사용할 필요가 없습니다.
최근에 EQATEC Profiler http://www.eqatec.com/tools/profiler를 발견했습니다 . 대부분의 .NET 버전과 여러 플랫폼에서 작동합니다. 상업적으로도 사용하기 쉽고 일부는 무료입니다.
[ 전체 공개 ]
여기에 나열된 다른 .NET 메모리 프로파일 러만큼 완전한 기능을 제공하지는 않지만 시장에 JustTrace 라는 새로운 항목이 있습니다 . Telerik에 의해 만들어졌으며 주요 목표는 모든 유형의 앱 (웹 / 실버 라이트 / 데스크톱)에 대해보다 쉽고 빠르게 추적 / 프로파일 링을 수행하는 것입니다.
다른 도구를 사용하여 프로파일 링 및 최적화를 위협하거나 느리게 발견 한 경우 JustTrace 를 살펴볼 가치가 있습니다.
현존 하는 프리웨어 프로파일 러 인 nProf를 잊지 마십시오 .
내가 찾은 dotTrace 프로파일 러를 하여 JetBrains의 자신의 ASP.NET 모드가 품질 .NET과위한 우수한 프로파일 링 도구가 될 수 있습니다.
빠르고, 쉽고, 자유로운 것을 찾고 있다면 http://code.google.com/p/slimtune/ 이 잘 작동하는 것 같습니다.
WinForms 및 콘솔 응용 프로그램 (아직 ASP.net에서 테스트되지 않음) 용 JetBrains dotTrace 와 함께 작업했으며 꽤 잘 작동합니다.
그들은 최근 회사보다 훨씬 저렴한 "개인 라이센스"도 추가했습니다. 그래도 다른 사람이 더 싸거나 무료 인 것을 알고 있다면 나는 또한 듣고 싶습니다 :-)
멋진 scitech .net 메모리 프로파일 러를 잊지 마십시오
.net 앱에 메모리가 부족한 이유를 추적하는 데 좋습니다.
dotTrace의 메모리 및 성능 추적 세션 차이 기능은 절대적으로 귀중합니다 (ANTS에는 메모리 차이 기능이있을 수 있지만 성능 차이는 보이지 않았습니다).
버그 수정 또는 개선 전후에 프로파일 링 세션을 실행할 수 있으므로 성능을 우선시하지 않았고 병목 현상이 발견 될 수있는 거대한 레거시 .NET 애플리케이션 (특히 필자의 경우)에서 결과를 비교할 수 있습니다. 매우 지루합니다. diff 전후를 수행하면 각 메소드의 호출 횟수 변경 및 각 메소드의 지속 시간 변경 을 볼 수 있습니다 .
이는 코드 변경시뿐만 아니라 각 클라이언트 / 고객에 대해 다른 데이터베이스를 사용하는 응용 프로그램이있는 경우에도 유용합니다. 한 고객이 속도 저하를 호소하는 경우 데이터베이스를 사용하여 프로파일 링 세션을 실행하고 결과를 "빠른"데이터베이스와 비교하여 속도 저하에 기여하는 작업을 확인할 수 있습니다. 물론 많은 데이터베이스 측 성능 도구가 있지만 때로는 응용 프로그램 측에서 성능 메트릭을 보는 데 실제로 도움이됩니다 (사용자가 실제로 보는 것과 더 가깝기 때문에).
결론 : dotTrace는 훌륭하게 작동하며 diff는 매우 중요합니다.
과거에는 Visual Studio Team System 과 함께 제공되는 프로파일 러를 사용했습니다 .
SharpDevelop (3.1.1) 의 현재 릴리스 에는 멋진 통합 프로파일 러가 있습니다. 매우 빠르며 SharpDevelop IDE 및 NUnit 러너에 매우 잘 통합됩니다. 결과는 유연한 트리 /리스트 스타일로 표시됩니다 (LINQ를 사용하여 원하는 선택). 표시된 메소드를 두 번 클릭하면 소스 코드로 직접 이동합니다.
Visual Studio Team System과 함께 제공되는 프로파일 러가 최고의 프로파일 러인지 의심하지만 여러 경우에 충분하다는 것을 알았습니다. VS가 제공하는 것 이상으로 무엇이 구체적으로 필요합니까?
편집 : 불행히도 VS Team System에서만 사용할 수 있지만 액세스 할 수 있으면 체크 아웃 할 가치가 있습니다.
yourkit java 및 .net 프로파일 러 를 추가하고 싶습니다 .Java를 좋아하지만 .NET 버전을 시도하지 않았습니다.
빠른 샘플링을위한 인텔 ® VTune ™ 성능 분석기
NuMega True Time 프로파일 러는 Micro Focus의 DevPartner Studio에 있습니다. PDB 만 필요하고 소스는 필요하지 않은 .NET 앱에 대한 라인 및 메소드 레벨 세부 사항을 제공하지만 도움이됩니다. 독자적인 스레드 별 커널 모드 타이밍 드라이버를 사용하여 알고리즘이 많은 루틴과 긴 I / O 대기 시간을 구별 할 수 있습니다. 버전 10.5는 2011 년 2 월 4 일에 새로운 64 프로세스 지원을 제공합니다. 뻔뻔한 플러그 : DevPartner 제품 라인에서 작업합니다. 10.5 출시 소식을 보려면 http://www.DevPartner.com 을 팔로우 하십시오 .
면책 조항 : 저는 Micro Focus의 DevPartner 제품 관리자입니다.
우리는 회사에서 .NET 용 YourKit Profiler를 최고의 가치 (가격 대비 기능)로 선택했습니다. 유연한 라이센스 (부동 라이센스)를 원하는 소규모 회사의 경우 완벽한 선택이었습니다. ANTS는 당시 개발자 시트 로켓이었습니다.
또한 dotTrace로는 불가능했던 실행중인 프로세스에 연결할 수있는 기능을 제공했습니다. 모든 .NET이 느려질 수 있으므로 첨부하는 것이 최선의 방법은 아니지만 다른 프로세스에서 시작한 .NET 응용 프로그램을 프로파일 링하는 유일한 방법이었습니다. 현명한 특징으로, ANTS와 dotTrace가 더 좋았지 만 결국 YourKit은 충분했습니다.