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" ...