我已经看到(我认为在SO上)使用类似于system.time的函数,它同时评估多个函数的时间并吐出一个输出。我不记得它是什么,用我正在使用的术语进行互联网搜索并没有产生我想要的响应。
任何人都知道我正在谈论的功能的名称/位置?
答案 0 :(得分:9)
您需要rbenchmark包及其benchmark
功能。 (还有相关且更专业的microbenchmark包。)
以下是示例部分的开头:
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.286 1 0.2 0.08 0 0
bnchmrR> # Example 2
bnchmrR> # A call to benchmark with two named expressions and three replication
bnchmrR> # counts, output sorted by the replication counts and then by the
bnchmrR> # elapsed time:
bnchmrR> means.rep = function(n, m)
bnchmr+ mean(replicate(n, rnorm(m)))
bnchmrR> means.pat = function(n, m)
bnchmr+ colMeans(array(rnorm(n*m), c(m, n)))
bnchmrR> benchmark(
bnchmr+ rep=means.rep(100, 100),
bnchmr+ pat=means.pat(100, 100),
bnchmr+ replications=10^(1:3),
bnchmr+ order=c('replications', 'elapsed'))
test replications elapsed relative user.self sys.self user.child sys.child
4 pat 10 0.011 1.00000 0.02 0 0 0
1 rep 10 0.015 1.36364 0.02 0 0 0
5 pat 100 0.107 9.72727 0.10 0 0 0
2 rep 100 0.155 14.09091 0.16 0 0 0
6 pat 1000 1.073 97.54545 1.07 0 0 0
3 rep 1000 1.553 141.18182 1.55 0 0 0