컴퓨터구조

컴퓨터의 Execution Time 측정방법

YoonJongSeok 2023. 1. 2. 15:55

Elapsed time

한 작업을 끝내는데 필요한 전체 시간을 이야기합니다. 실제 확인하고 싶을 때는
C언어에서 time.h 라이브러리에 있는 clock() 함수를 이용합니다.

clock_t start, end;
double result;

start = clock();

/// 매우 많은 코드

end = clock();

result = (double)(end - start);

CPU time

주어진 한 가지 일에 대하여 processing 하는데에 걸리는 시간
cpu time은 클럭 사이클에 영향을 많이 받는데 클럭 사이클은 보통 hz 단위로 측정한다. hz는 1초에 생기는 on/off 횟수를 의미하는 것이다.
ex ) 1 Ghz는 1초에 10억번의 on/off가 일어난다는 소리이다.

1,000,000,000 hz = 1 Ghz
1,000,000 hz = 1 Mhz

1,000 hz = 1 Khz

해당 cpu time을 계산할 때는

cpu time = cpu clock cycles * cpu clock cycle time

식이 나오는데 여기서 cpu clock cycle time이란 1 사이클 당 걸리는 시간을 의미한다. 즉 cpu time이 적을수록 성능이 좋다고 평가할 수 있다.
해당 식을 clock rate 를 이용하여 표현할 수도 있다. clock rate 는 초당 실행하는 사이클 수를 GHz 단위로 측정한 것이다.

clock rate = cpu clock cycles / cpu time

으로 표현한다.

cpu 의 성능은 또 프로세싱에 필요한 명령어의 개수에 영향을 받는다. 여기서 명령어는 instruction 이고 이것의 집합을 instruction set 이라고 한다.

 

인텔, arm, mips 등 여러 회사에서 자기만의 하드웨어를 위한 instruction set을 가지고 있으며 이러한 구조를

instruction set architecture (ISA) 라고 한다.

 

이것의 성능 계산은 CPI (Clock cycles Per Instruction) 을 이용한다.

cpu clock cyles = instruction count * CPI 을 이용하게 된다.


즉, cpu time = instruction count * CPI * clock cycle time 이 된다.

cpu time의 비교는

cpu time(A) / cpu time(B)

로 A가 B보다 몇 배 느린지 확인할 수 있다.