Windows를위한 최고의 무료 C ++ 프로파일 러 란 무엇입니까? [닫은]


224

내 C ++ 코드에서 병목 현상을 찾기 위해 프로파일 러를 찾고 있습니다. 무료의 비침 입적이며 우수한 프로파일 링 도구를 찾고 싶습니다. 저는 게임 개발자이며 Xbox 360 용 PIX를 사용하여 매우 좋았지 만 무료는 아닙니다. Intel VTune도 알고 있지만 무료는 아닙니다.


:의 VTune 지금 무료로 나타납니다 software.intel.com/en-us/vtune . 커뮤니티 에디션을 다운로드했으며 C ++ 및 프로파일 링 된 C # 코드 프로파일 링에 큰 역할을합니다
Dr. ABT

1
이 주제는 어떻습니까? 내가 아는 한 개발 도구는 주제입니다. 그래도 의견 기반입니다.
Nic Szerman

답변:


135

CodeXL 은 이제 End Of Line의 AMD Code Analyst를 대체했으며 둘 다 무료이지만 VTune만큼 발전하지는 않았습니다. 슬리피 도 있는데 매우 간단하지만 많은 경우에 작업을 수행합니다.


4
CodeAnalyst에 대한 링크는 다음과 같습니다. developer.amd.com/CPU/CODEANALYST/Pages/default.aspx
epotter

1
나는 지금 그것을 시도했지만 전혀 좋아하지 않았다. TrueTime이 10 년 전에 잘 할 수 있었던 함수의 총 시간 (수취인 포함)을 얻는 방법조차 이해할 수 없었습니다.
Pavel Radzivilovsky

wxWidgets에 의존하지 않지만 명령 줄에서 실행되는 졸린 적응을 썼습니다. 실행중인 프로세스에 대해 일정 시간 동안 실행 한 다음 중지하면 프로세스가 수행 한 시간에 대한 통계를 얻습니다. 코드를 사용하기 위해 어떤 식 으로든 코드를 수정할 필요는 없다는 점에서 비 신뢰 적이지만 호출 스택을 읽을 때 스레드가 일시 중단됩니다. 또한 의미있는 출력을 얻을 수 있도록 pdb 파일이 필요하지만 모든 프로파일 러에 적용되는 것 같습니다.
CashCow

xperf를 사용해 보는 것이 좋습니다 .AMD 코드 분석가보다 우수하다는 것을 알았습니다.
MW_dev

1
CodeAnalyst는 중요한 버그 수정을 제외하고는 더 이상 업데이트를받지 않습니다. 그들은 CodeXL로 전환했습니다. 답변을 업데이트 할 수 있는 링크는 다음과 같습니다 . 그런데 CodeAnalyst / XL에 대해 알려 주셔서 감사합니다.
Adri CS

61

Very Sleepy 는 Windows 시스템 용 C / C ++ CPU 프로파일 러입니다 (무료).
CppCheck 는 Windows 시스템 용 정적 C / C ++ CPU 프로파일 러입니다 (무료).


20
googletest는 단위 테스트 프레임 워크입니다. 어떻게 프로파일 링을 수행 할 수 있습니까?
greatwolf

gcc 스택에서 Windows 바이너리를 사용하는 경우 이것이 최선의 선택입니다. AMD CodeAnalyst는 Windows에서 gcc 기호를 인식하지 못하지만 매우 졸립니다!
Mike


17

MicroProfiler라는 MS VC 7.1 이상에 대한 계측 (정확한 기능) 프로파일 러가 있습니다. 여기 (x64) 또는 여기 (x86) 얻을 수 있습니다 . 그것은 수정이나 추가가 필요하지 않습니다 당신의 코드와의 호출자와 피 호출자와 기능 통계를 표시 할 수있다 실시간 / 응용 프로그램을 종료 프로파일 링 프로세스를 중지 할 필요없이.

VisualStudio와 통합되므로 프로젝트 프로파일 링을 쉽게 활성화 / 비활성화 할 수 있습니다. 클린 머신에 설치하는 것도 가능하며, 프로파일 정보와 함께 심볼 정보 만 있으면됩니다.

이 도구는 Very Sleepy와 같은 샘플링 프로파일 러의 통계 근사가 충분하지 않은 경우에 유용합니다.

대략적인 비교는 AQTime을 능가하는 것으로 나타났습니다 (계측에서 호출 될 때 기능 수준 실행). 다음 프로그램 (전체 최적화, 인라인 비활성화)은 AQTime이 단순히 통계를 수집하는 것보다 실시간으로 결과를 표시하는 마이크로 프로파일 러로 3 배 더 빠르게 실행됩니다.

void f()
{
    srand(time(0));

    vector<double> v(300000);

    generate_n(v.begin(), v.size(), &random);
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
}

1
사용하기 쉽고 초고속 프로파일 러입니다. 내가 해결하지 않은 한 가지 문제는 디버깅을 마친 후에 프로파일 러 창이 자동으로 닫히지 않고 작업 관리자를 통해 프로젝트를 다시 컴파일해야한다는 문제입니다 (프로젝트를 다시 컴파일 할 수 없음).
Ludek Vodicka

1
일반 CLOSE 버튼으로 앱을 닫은 후 프로파일 러 창도 정기적으로 닫을 수 있음을 알았습니다. 그러나 Shift + F5 바로 가기 (디버깅 VS 명령 중지)로 앱을 종료하면 프로파일 러 창 닫기 버튼이 비활성화됩니다.
Ludek Vodicka

VS 2015에서는 작동하지 않습니다.
rustyx

1
1.1.590에서 수정되었습니다. Visual Studio Gallery 페이지 ( visualstudiogallery.msdn.microsoft.com/… )의 업데이트 참조
Arty

1
이거 정말 맛있어요! 더 높은 순위에 있어야합니다! 설치 및 실행이 매우 간단하고 알아야 할 내용을 대부분 제공합니다. 두 번째 선택은 Windows 성능 분석기입니다. geekswithblogs.net/akraus1/archive/2015/04/21/163342.aspx
Steve

10

Microsoft에는 Windows Performance Toolkit이 있습니다.

Windows Vista, Windows Server 2008 또는 Windows 7이 필요합니다.


6
무료가 아닌 방법은 무엇입니까? Windows SDK의 일부입니다. 문제없이 다운로드 할 수있었습니다. (실제로 우리는 MSDN 구독을 보유하고 있으므로 일부 사람들과는 다른 경험이있을 수 있습니다.)
epotter

1
사용 가능 여부에 관계없이 링크가 더 이상 제대로 작동하지 않습니다.
Tomáš Zato-복원 모니카

7

새로운 추가 사항은 반짝 입니다.

​​​​​


3
다운로드 가능한 바이너리를 찾을 수없고 소스 코드 만 찾을 수 있습니다. 매우 편리하지 않습니다.
Monsignor

5

WPT (Windows Performance Toolkit) 또는 XPERF를 적극 권장 합니다.

명령 행 xperf 명령 행 도구는 GUI xperfview 도구를 사용하여 분석 할 수있는 ETW (Event Tracing for Windows) 로그를 기록합니다.

stacktrace 명령 줄 인수를 사용하면 병목 현상을 프로파일 링하고 문제를 해결할 때 회사에서 매우 유용한 도구로 입증되었습니다. 가장 강력한 것 중 하나는 WPT를 유용한 Windows XP 에서도 모든 환경에 설치할 수 있다는 것입니다 .

윈도우 8 Windows 성능 분석기는 더 높은 수준으로 xperf합니다.

ETW 로그에서 제공되는 어려운 숫자와 통계는 AFAIK는 아니지만 훌륭한 Visual Studio Profiler (2010/2012)를 제외하고는 자세히 비교할 수 없습니다.

xperf를 사용한 적이 없다면 ... 무엇이 빠졌는지 모른다


1
글쎄, 나는 사이트에 작동하는 URL이 빠져 있다는 것을 안다.
Tomáš Zato-복원 모니카

3

나는 AQTime을 사용하는데, 그것은 내가 사용해 본 최고의 프로파일 링 도구 중 하나입니다. 무료는 아니지만 30 일 평가판을받을 수 있으므로 한 프로젝트 만 최적화하고 프로파일 링 할 계획이고 30 일이면 충분합니다.이 응용 프로그램을 사용하는 것이 좋습니다. ( http://www.automatedqa.com/downloads/aqtime/index.asp )


이 도구 만이 IIS에서 릴리스 모드 혼합 (관리 및 기본) 웹 응용 프로그램으로 컴파일 된 프로파일을 작성하는 데 도움이되었습니다.
Monsignor

불행히도 제품을 평가하려는 사람들을 지원하지 않습니다.
Lucky Luke

현재 이들은 제한된 기능으로 14 일 평가판을 제공하고 있습니다.
Max



0

"TrueTime-Compuware의 DevPartner 제품군의 일부였습니다. [무료 버전] (Compuware DevPartner Performance Analysis Community Edition을 사용해 볼 수 있음)이 있습니다.



0

EmbeddedProfiler를 사용할 수 있으며 Linux와 Windwos 모두 무료입니다.

프로파일 러는 기능성에 영향을 미치지 만 코드를 수정하지 않아도됩니다. 특정 컴파일러 플래그 (gcc / MinGW의 경우 -finstrument-functios 또는 MSVC의 경우 / GH)를 추가하고 프로파일 러의 라이브러리를 연결하십시오. 전체 콜 트리 또는 기능 목록 만 제공 할 수 있습니다. 자체 분석기 GUI가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.