我正在尝试使用system.time()
来衡量R中函数的计算时间。
我想运行几百次以获得平均值,但我不想要
多次复制和粘贴。有没有更简单的方法呢?
答案 0 :(得分:17)
microbenchmark软件包采用,times=
选项,并且具有更准确的附加功能。
> library(microbenchmark)
> m <- microbenchmark( seq(10)^2, (1:10)^2, times=10000)
> m
Unit: nanoseconds
expr min lq median uq max
1 (1:10)^2 2567 3423 3423 4278 41918
2 seq(10)^2 44484 46195 46195 47051 1804147
> plot(m)
使用ggplot2的尚未发布的autoplot()方法:
autoplot(m)
答案 1 :(得分:12)
system.time(replicate ( ... stuff ..) )
或者:(嘿,我和Dirk有同样的答案我并不感到羞耻。)
require(rbenchmark)
benchmark( stuff... ) # Nice for comparative work
答案 2 :(得分:11)
您希望使用rbenchmark软件包及其功能benchmark()
,它可以为您提供一切。
以下是其帮助页面中的第一个示例:
R> example(benchmark)
bnchmrR> # example 1
bnchmrR> # benchmark the allocation of one 10^6-element numeric vector,
bnchmrR> # replicated 100 times
bnchmrR> benchmark(1:10^6)
test replications elapsed relative user.self sys.self user.child sys.child
1 1:10^6 100 0.327 1 0.33 0 0 0
对于真正的表达式基准测试,还有microbenchmark包。