내 C ++ 코드에서 병목 현상을 찾기 위해 프로파일 러를 찾고 있습니다. 무료의 비침 입적이며 우수한 프로파일 링 도구를 찾고 싶습니다. 저는 게임 개발자이며 Xbox 360 용 PIX를 사용하여 매우 좋았지 만 무료는 아닙니다. Intel VTune도 알고 있지만 무료는 아닙니다.
내 C ++ 코드에서 병목 현상을 찾기 위해 프로파일 러를 찾고 있습니다. 무료의 비침 입적이며 우수한 프로파일 링 도구를 찾고 싶습니다. 저는 게임 개발자이며 Xbox 360 용 PIX를 사용하여 매우 좋았지 만 무료는 아닙니다. Intel VTune도 알고 있지만 무료는 아닙니다.
답변:
CodeXL 은 이제 End Of Line의 AMD Code Analyst를 대체했으며 둘 다 무료이지만 VTune만큼 발전하지는 않았습니다. 슬리피 도 있는데 매우 간단하지만 많은 경우에 작업을 수행합니다.
Very Sleepy 는 Windows 시스템 용 C / C ++ CPU 프로파일 러입니다 (무료).
CppCheck 는 Windows 시스템 용 정적 C / C ++ CPU 프로파일 러입니다 (무료).
Proffy는 매우 멋지다 : http://pauldoo.com/proffy/
면책 조항 : 나는 이것을 썼습니다.
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());
}
Microsoft에는 Windows Performance Toolkit이 있습니다.
Windows Vista, Windows Server 2008 또는 Windows 7이 필요합니다.
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를 사용한 적이 없다면 ... 무엇이 빠졌는지 모른다
나는 AQTime을 사용하는데, 그것은 내가 사용해 본 최고의 프로파일 링 도구 중 하나입니다. 무료는 아니지만 30 일 평가판을받을 수 있으므로 한 프로젝트 만 최적화하고 프로파일 링 할 계획이고 30 일이면 충분합니다.이 응용 프로그램을 사용하는 것이 좋습니다. ( http://www.automatedqa.com/downloads/aqtime/index.asp )
cRunWatch라는 프로파일 러를 사용해보십시오. 파일이 두 개이므로 프로젝트와 쉽게 통합 할 수 있으며 코드 한 줄을 계측하려면 정확히 한 줄을 추가해야합니다.
http://ravenspoint.wordpress.com/2010/06/16/timing/
Boost 라이브러리가 필요합니다.
"TrueTime-Compuware의 DevPartner 제품군의 일부였습니다. [무료 버전] (Compuware DevPartner Performance Analysis Community Edition을 사용해 볼 수 있음)이 있습니다.
StandAlone Visual Studio Profiler 인 VSPerfMon을 사용합니다. 나는 그것을 실행하고 결과를 볼 수 있도록 GUI 도구를 썼다.