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