std:: clock
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<ctime>
|
||
|
std::
clock_t
clock
(
)
;
|
||
프로세스가 프로그램 실행과 관련된 구현 정의 시점부터 사용한 대략적인 프로세서 시간을 반환합니다. 결과 값을 초 단위로 변환하려면 CLOCKS_PER_SEC 로 나누십시오.
서로 다른 호출로 반환된 두 값 사이의 차이만이 의미가 있습니다. 왜냐하면
std::clock
시대의 시작점이 프로그램의 시작과 반드시 일치해야 하는 것은 아니기 때문입니다.
std::clock
시간은 운영체제가 프로그램에 부여하는 실행 자원에 따라 벽시계 시간보다 빠르거나 느리게 진행될 수 있습니다. 예를 들어, CPU가 다른 프로세스들과 공유되는 경우
std::clock
시간은 벽시계보다 느리게 진행될 수 있습니다. 반면 현재 프로세스가 다중 스레드이고 둘 이상의 실행 코어가 사용 가능한 경우,
std::clock
시간은 벽시계보다 빠르게 진행될 수 있습니다.
목차 |
반환값
프로그램이 지금까지 사용한 프로세서 시간.
- 사용된 프로세서 시간을 사용할 수 없는 경우, ( std:: clock_t ) ( - 1 ) 을 반환합니다.
- 사용된 프로세서 시간의 값을 std::clock_t 로 표현할 수 없는 경우, 지정되지 않은 값을 반환합니다.
예외
아무것도 던지지 않습니다.
참고 사항
POSIX 호환 시스템에서는,
clock_gettime
함수와 clock id
CLOCK_PROCESS_CPUTIME_ID
를 사용하면 더 나은 해상도를 제공합니다.
clock()
함수가 반환하는 값은 일부 구현에서 래핑(wrap around)될 수 있습니다. 예를 들어, 이러한 구현에서
std::clock_t
가 부호 있는 32비트 정수이고
CLOCKS_PER_SEC
가
1
'000'
000
인 경우, 약 2147초(약 36분) 후에 래핑이 발생합니다.
예제
이 예제는
clock()
시간과 실제 시간 간의 차이를 보여줍니다.
#include <chrono> #include <ctime> #include <iomanip> #include <iostream> #include <thread> // The function f() does some time-consuming work. void f() { volatile double d = 0; for (int n = 0; n != 10000; ++n) for (int m = 0; m != 10000; ++m) d += d * n * m; } int main() { const std::clock_t c_start = std::clock(); auto t_start = std::chrono::high_resolution_clock::now(); std::thread t1(f); std::thread t2(f); // f() is called on two threads t1.join(); t2.join(); const std::clock_t c_end = std::clock(); const auto t_end = std::chrono::high_resolution_clock::now(); std::cout << std::fixed << std::setprecision(2) << "CPU time used: " << 1000.0 * (c_end - c_start) / CLOCKS_PER_SEC << "ms\n" << "Wall clock time passed: " << std::chrono::duration<double, std::milli>(t_end - t_start) << '\n'; }
가능한 출력:
CPU time used: 1590.00ms Wall clock time passed: 808.23ms
참고 항목
|
std::time_t
객체를 텍스트 표현으로 변환
(function) |
|
|
epoch 이후 시간으로서 시스템의 현재 시간을 반환
(function) |
|
|
C documentation
for
clock
|
|