문제

내 C++ 코드에서 병목 현상을 찾기 위해 프로파일러를 찾고 있습니다.나는 무료이고 방해가 되지 않으며 좋은 프로파일링 도구를 찾고 싶습니다.저는 게임 개발자이고 Xbox 360용 PIX를 사용하고 있는데 매우 좋다고 생각하지만 무료는 아닙니다.나는 인텔을 안다 VTune, 하지만 무료도 아닙니다.

도움이 되었습니까?

해결책

코드XL 이제 End Of Line'd를 대체했습니다. AMD 코드 분석가 둘 다 무료이지만 VTune만큼 고급은 아닙니다.또한 있습니다 졸린, 이는 매우 간단하지만 많은 경우에 해당 작업을 수행합니다.

다른 팁

매우 졸려 Windows 시스템용 C/C++ CPU 프로파일러입니다(무료).
CppCheck Windows 시스템용 정적 C/C++ CPU 프로파일러입니다(무료).

Proffy는 꽤 멋지다. http://pauldoo.com/proffy/

부인 성명:나는 이것을 썼다.

MS VC 7.1 이상에는 MicroProfiler라는 계측(정확한 함수) 프로파일러가 있습니다. 여기에서 얻을 수 있습니다(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());
}

마이크로소프트는 Windows 성능 도구 키트.

Windows Vista가 필요합니다. 윈도우 서버 2008, 또는 Windows 7.

새로 추가된 사항은 빛나는.

​​​​​

나는 강력히 추천한다 Windows 성능 도구 키트(WPT) 또는 엑스퍼프

명령줄 xperf 명령줄 도구는 GUI xperfview 도구를 사용하여 분석할 수 있는 ETW(Windows용 이벤트 추적) 로그를 기록합니다.

사용 stacktrace 명령줄 인수 병목 현상을 파악하고 문제를 해결하는 데 있어서 우리 회사에 매우 귀중한 도구임이 입증되었습니다.가장 매력적인 점 중 하나는 WPT가 유서 깊은 환경에서도 어떤 환경에도 설치될 수 있다는 점입니다. 윈도우 XP.

~에 Windows 8 Windows 성능 분석기 xperf를 훨씬 더 높은 수준으로 끌어올립니다.

ETW 로그에 제공되는 하드 숫자와 통계는 훌륭하지만 무료 AFAIK는 아닌 Visual Studio 프로파일러(2010/2012)를 제외하고는 비교할 수 없을 만큼 자세하게 설명되어 있습니다.

xperf를 사용해 본 적이 없다면... 무엇을 놓치고 있는지 알 수 없습니다

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

cRunWatch라는 내 프로파일러를 사용해 보세요.파일이 두 개뿐이므로 프로젝트와 쉽게 통합할 수 있으며, 코드 조각을 계측하려면 정확히 한 줄을 추가해야 합니다.

http://ravenspoint.wordpress.com/2010/06/16/timing/

Boost 라이브러리가 필요합니다.

나는 사용했다 루크 스택워커 내 Visual Studio 프로젝트에 대한 작업을 수행했습니다.

다른 흥미로운 프로젝트는 다음과 같습니다.

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

저는 독립형 Visual Studio 프로파일러인 VSPerfMon을 사용합니다.나는 그것을 실행하고 결과를 보는 데 도움이 되는 GUI 도구를 작성했습니다.

http://code.google.com/p/vsptree/

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

프로파일러는 기능적으로 방해가 되지만 코드 수정이 필요하지 않습니다.특정 컴파일러 플래그(gcc/MinGW의 경우 -finstrument-functios, MSVC의 경우 /GH)를 추가하고 프로파일러 라이브러리를 연결하기만 하면 됩니다.전체 호출 트리 또는 기능 목록만 제공할 수 있습니다.자체 분석기 GUI가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top