더북(TheBook)

명령문 실행 시간 측정

system.time( )은 인자로 주어진 명령이 수행하는 데 걸린 시간을 측정한다.

표 5-22 CPU 시간 측정

system.time : 표현식을 평가하는 데 걸린 CPU 시간을 구한다.

system.time(
  expr  # 평가할 표현식
)

반환 값은 표현식을 평가하는 데 걸린 CPU 시간이다.

다음은 1부터 N까지 더하는 함수인 sum_to_n( )의 수행 시간을 N=10,000, N=100,000, N=1,000,000인 경우에 대해 각각 측정해본 예다.

> sum_to_n <- function(n) {
+   sum <- 0
+   for (i in 1:n) {
+     sum <- sum + i
+   }
+   return(sum)
+ }

> system.time(sum_to_n(10000))
  user system elapsed
     0      0       0
> system.time(sum_to_n(100000))
  user system elapsed
  0.08   0.00    0.08
> system.time(sum_to_n(1000000))
  user system elapsed
  0.68   0.00    0.69

system.time( )이 출력하는 수행 시간은 user time, system time, elapsed time으로 구분된다. 이 중 elapsed time이 가장 알기 쉬운 개념이다. 이 시간은 코드의 총 소요 시간으로, 코드를 시작한 직후부터 코드 수행이 끝날 때까지의 시간을 초시계로 쟀을 때 얼마나 걸렸는지를 나타낸다. 통상적으로 이야기하는 코드 수행 시간이 이에 해당한다.

user time, system time은 elapsed time을 구성하는 요소로, 각각 프로그램 코드 자체를 수행하는 데 걸린 시간과 프로그램이 운영체제의 명령을 호출했다면 그때 운영체제가 명령을 수행하는 데 걸린 시간을 의미한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.