2017-05-07 4 views
1

나는 별도의 얻을 수있는 방법이 있는지 알아 내려고 노력하고있어 나머지 99Visual Studio에서 루프 프로파일

에 대한 1ms의 첫 번째 반복과 주위 약 3 분 정도 소요 루프가 각 루프에 대한 데이터 프로파일 링 및 수행 방법

저는 프로파일 링에 익숙하지 않아서 여기에 명백한 것이 빠져있을 수도 있습니다.

내 병목 현상이 어디 있는지 알고 있어야합니다. 내 기능 중 2 개는 런타임의 99.9 %를 차지합니다. 나는 이것이 첫 번째 루프 (따라서 일부 할당 문제) 또는 스크립트의 실행 전반에 걸쳐 '확산'인지를 파악하려고합니다. 이 (적어도 Visual Studio에서) 작동하려면 컴파일러는 릴리스 모드에 있어야합니다

+0

[줄 단위 프로파일 링을 활성화하는 방법에 대한 설명] (https://msdn.microsoft.com/en-us/library/bb385757.aspx) 및 [결과보기] (https://msdn.microsoft.com/en-us/library/ms182372.aspx)? 필요한 모든 데이터가 쉽게 액세스 할 수있는 것 같습니다. 정확히 당신은 문제가 있습니까? (그리고 이것은 [당신이 단계를 밟아서 동시에 프로파일 할 수 있습니다] (https://www.hanselman.com/blog/HistoricalDebuggingProfilingNewDiagnosticToolsInVisualStudio2015.aspx).) –

+0

링크를 가져 주셔서 감사합니다. 나는 코드의 어느 부분이 느린 지 알고있다. 나는 속도 저하가 어떤 괴괴 망측 한 기억 장치 할당의 계산 오류에 기인하는지 파악하려고 노력하고 있습니다. 그래서 그것을 고칠 수 있습니다. – dsat

+0

컴파일러가 작동하도록 언급 한 코드의 릴리스 모드에 있어야합니다. (이전에 언급 한 것을 잊었습니다.) – AppWriter

답변

1
LARGE_INTEGER StartingTime, EndingTime, ElapsedMicroseconds; 
QueryPerformanceCounter(&StartingTime); 

//code to be profiled 

QueryPerformanceCounter(&EndingTime); 
ElapsedMicroseconds.QuadPart = EndingTime.QuadPart - StartingTime.QuadPart; 

int result[numLoops] 
result[0] = ElapsedMicroseconds.QuadPart; 

//use result in conjunction with a print function 

나는 비주얼 스튜디오 15를 사용하여 Windows 10에있어 (그리고 프로파일 러를 통합됩니다).

+0

컴파일 할 때 "대상 아키텍처 없음"오류가 발생합니다. 오류를 throw하는 부분은 다음과 같습니다. #elif! defined (RC_INVOKED) 아마도 콘솔 응용 프로그램 (알고리즘 구현)이라고 언급해야합니다. – dsat

+1

다른 사람이 이것을 보길 원한다면이 코드를 컴파일하기 위해'#include #include '를 추가해야합니다. – dsat