proc.time()

最簡單的是,proc.time() 給出當前程序的總 CPU 消耗時間(以秒為單位)。在控制檯中執行它會提供以下型別的輸出:

proc.time()

#       user     system    elapsed 
#    284.507    120.397 515029.305 

這對於對特定程式碼行進行基準測試特別有用。例如:

t1 <- proc.time()
fibb <- function (n) {
    if (n < 3) {
        return(c(0,1)[n])
    } else {
        return(fibb(n - 2) + fibb(n -1))
    }
}
print("Time one")
print(proc.time() - t1)

t2 <- proc.time()
fibb(30)

print("Time two")
print(proc.time() - t2)

這給出了以下輸出:

source('~/.active-rstudio-document')

# [1] "Time one"
#    user  system elapsed 
#       0       0       0 

# [1] "Time two"
#    user  system elapsed 
#   1.534   0.012   1.572 

system.time()proc.time() 的包裝器,它返回特定命令/表示式的已用時間。

print(t1 <- system.time(replicate(1000,12^2)))
##  user  system elapsed 
## 0.000   0.000   0.002 

請注意,proc.time 類的返回物件比表面上顯示的要複雜一些:

str(t1)
## Class 'proc_time'  Named num [1:5] 0 0 0.002 0 0
##  ..- attr(*, "names")= chr [1:5] "user.self" "sys.self" "elapsed" "user.child" ...