经过时间R - min,max

时间:2015-12-09 21:09:41

标签: r elapsedtime

我需要根据经过的时间比较两个函数。目前我正在使用以下代码:

system.time(f1())
system.time(f2())

如果我想多次运行相同的功能,我会使用:

system.time(replicate(10, f1()))
system.time(replicate(10, f2()))

我从system.time获得的信息是用户,系统和已用时间。

关键是我知道,如果我复制该功能,还会知道单次呼叫的最小和最大经过时间。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

如果您不仅仅使用base个软件包,我建议您使用RFC 3986软件包。

> f1 <- function() 1
> f2 <- function() 2
> microbenchmark::microbenchmark(f1(), f2(), times = 10)
Unit: nanoseconds
 expr min  lq  mean median  uq  max neval cld
 f1() 134 195 896.7    309 360 6418    10   a
 f2() 133 138 305.3    189 230 1320    10   a

但是,如果您仍想使用system.time,只需在replicate电话之外移动system.time即可。例如,

> f1 <- function() sapply(1:100000, identity)
> times <- replicate(10, system.time(f1())[3])
> min(times)
[1] 0.051
> max(times)
[1] 0.057