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