2010-07-01 1 views
0

C++ 프로그램의 실행 시간을 계산해야합니다.사용하지 않고 C++을 사용하여 실행 TIme 계산하기 <time.h>

clock_t tStart = clock(); 
... 
printf("Execution Time: %.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC); 

내가 실행 시간을 계산하는 데 사용할 수있는 C의 ++ 헤더가 있나요 : 저는 현재 C 스타일의 머리, 다음 코드로 <time.h>를 사용하고? 이 기능은 플랫폼 간 호환이 가능해야합니다.

+1

왜 time.h를 사용하지 않으시겠습니까? – Salgar

+0

나는 그것에 반대하지 않지만 일반적으로 c와 C++ 코드를 혼합하고 매치는 것을 좋아하지 않습니다. – Elpezmuerto

+1

대신 을 사용하십시오. –

답변

3

C 헤더의 C++ 버전을 사용할 수 있습니다.

그래서 당신은 단지 C의 방법을 사용할 수 나머지는 동일하게 유지

#include <ctime> 

필요로하는 시작 부분에 'C'를 추가하고 '.H'을 제거합니다.

+2

+1. C++ 헤더를 사용하면 기호가'std' 네임 스페이스 안에 정의되어 있으므로'std :: clock'이됩니다. –

+0

맞습니다. 잊어 버렸습니다. –

3

시간 및 시계 기능은 플랫폼마다 다른 것들 중 하나입니다.

내가하고있는 일에 Boost의 타이머 라이브러리를 사용하고 싶습니다 : http://www.boost.org/doc/libs/1_43_0/libs/timer/timer.htm 잘 작동하며 매우 사용하기 쉽습니다.

+0

벽이나 CPU 시간이 필요한 경우에 따라 다릅니다. 예 : OpenVMS에서는 CPU 시간을 제공하지만 대부분의 Linux에서는 벽 시간을 제공합니다. – Salgar

+0

'clock()'과'time()'은 C 표준의 일부이기 때문에'CLOCKS_PER_SEC'의 값과 별개로 플랫폼에 따라 달라져서는 안된다. –

+0

@ Mike- Salgar가 지적했듯이 시계와 시간은 구현에 따라 CPU 시간 또는 벽 시간을 제공하는 측면에서 다를 수 있습니다. 또는 적어도 어느 시점에서 나는 이것이 사실이라고 믿는다 (나는 오래 전에 세부 사항을 기억할 수없는 몇 가지 문제로 인해 꽤 오랜 시간 동안 boost :: timer를 사용 해왔다). – MarkD