1
Windows C++ 기능을 휴대용으로 변환하려고합니다. 함수의 목적은 초 단위로 참조 cpu 시간을 얻는 것입니다. Windows 기능은 을 사용하려고 했으므로 QueryPerformanceCounter
과 QueryPerformanceFrequency
을 사용합니다. 그러나 어떻게 작동하는지 이해하지 못합니다.시간 받기 C++
std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
std::cout << "Hello World\n";
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
float a = std::chrono::duration_cast<std::chrono::seconds>(end - start).count();
: (그것은 그 인쇄에 "Hello World"가 소요되는 시간을 반환) 나는 다음과 같은 코드가 작동 한 high_resolution_clock
와
double GetSeconds(void)
{
double sec;
LARGE_INTEGER Frequency, PerformanceCount;
QueryPerformanceFrequency(&Frequency);
QueryPerformanceCounter(&PerformanceCount);
sec = (double)PerformanceCount.QuadPart /(double)Frequency.QuadPart;
return(sec);
}
: 나는 이미
기능은 다음이다 하지만 다음 라인이 작동하지 않는 이유를 모르겠습니다. (단지 시작 시점을 얻고 싶습니다.)
float a = std::chrono::duration_cast<std::chrono::seconds>(start).count();
start
는
기간 아니기 때문에
당신의 도움이
+1. 자세한 내용은 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm을 참조하십시오. –
Joachim Pileborg @ Howard-Hinnant 답변 해 주셔서 감사합니다. 그러나 _duration_ 또는 * time_point *를 사용하여 현재 실행 시간을 얻는 방법을 이해할 수 없습니다. –
@ jl.da 실행 시간은'start'와'end' 사이의 지속 시간입니다. 이러한 포인트 중 벽시계 * (시스템 시간)를 얻으려면'system_clock'과''to_time_t' (http://en.cppreference.com/w/cpp/)를 사용해야합니다. chrono/system_clock/to_time_t) 또는 유사합니다. –