C 는 소스로직 중 특정구간의 수행시간 차이를 계산하기 위해 마이크로 단위의 시간 함수 gettimeofday 를 지원합니다.
gettimeofday 함수 구조
#include <sys/time.h> int gettimeofday(struct timeval *tv, struct timezone *tz);
timezone 은 잘 사용되지 않으며, timeval 의 구조는 다음과 같습니다.
반환되는 값은 1970-01-01 00:00 부터 함수가 호출된 시간까지의 ms 값 입니다.
struct timeval { time_t tv_sec; suseconds_t tv_usec; }
tv_sec 는 초, suseconds_t 는 마이크로초를 저장합니다.
gettimeofday 사용법
$ cat mozi.c #include <stdio.h> #include <sys/time.h> int main() { struct timeval startTime, endTime; double diffTime; gettimeofday(&startTime, NULL); // 특정 작업 수행 sleep(1); gettimeofday(&endTime, NULL); diffTime = ( endTime.tv_sec - startTime.tv_sec ) + (( endTime.tv_usec - startTime.tv_usec ) / 1000000); printf("%f s\n", diffTime); return 0; }
$ ./mozi 1.000000 s
'Computer Language > C' 카테고리의 다른 글
[C] 버블정렬 개념, 알고리즘, 코드 정리 (0) | 2018.11.06 |
---|---|
[C] 퀵정렬 개념, 알고리즘, 코드 정리 (0) | 2018.11.06 |
[C] malloc, free 로 메모리 동적 할당 해제하기 (0) | 2018.06.27 |
[C] memcmp 메모리 블록을 비교하는 함수 (0) | 2018.06.27 |
[C] memcpy 문자열을 지정 바이트 범위만큼 복사하는 함수 (0) | 2018.05.01 |