명령문 실행 시간 측정

    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을 구성하는 요소로, 각각 프로그램 코드 자체를 수행하는 데 걸린 시간과 프로그램이 운영체제의 명령을 호출했다면 그때 운영체제가 명령을 수행하는 데 걸린 시간을 의미한다.

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